将单列数据帧转换成多列数据帧

  • 在本次实战中,我们的目标是将存储在HDFS上的以逗号分隔的文本文件student.txt转换为结构化的Spark DataFrame。首先,使用spark.read.text读取文件,得到一个包含单列value的DataFrame。然后,利用split函数按逗号分割每行字符串,并通过withColumn和类型转换cast创建新的列idnamegenderage。最后,使用drop函数移除原始的value列,并使用showprintSchema验证转换结果。通过这一系列操作,我们成功地将原始文本数据转换为具有明确数据类型和列名的结构化数据集,为后续的数据分析和处理打下了基础。

1. 查看数据文件

  • 执行命令:hdfs dfs -cat /student/input/student.txt
    在这里插入图片描述

2. 读取数据文件得到单例数据帧

  • 执行命令:val df = spark.read.text("hdfs://master:9000/student/input/student.txt")
    在这里插入图片描述
  • 执行命令:df.show
    在这里插入图片描述

3. 将单列数据帧转换成多列数据帧

val stuDF = df
  .withColumn("id", split(col("value"), ",")(0).cast("int"))
  .withColumn("name", split(col("value"), ",")(1))
  .withColumn("gender", split(col("value"), ",")(2))
  .withColumn("age", split(col("value"), ",")(3).cast("int"))
  .drop("value") // 删除原始的 value 列
  • 执行上述命令
    在这里插入图片描述
  • 执行命令:stuDF.printSchema
    在这里插入图片描述
  • 执行命令:stuDF.show
    在这里插入图片描述

相关推荐

  1. python脚本视频抽为图像数据

    2024-06-06 18:50:06       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 18:50:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 18:50:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 18:50:06       82 阅读
  4. Python语言-面向对象

    2024-06-06 18:50:06       91 阅读

热门阅读

  1. Visual Studio的使用教程

    2024-06-06 18:50:06       28 阅读
  2. rabbitmq的交换机类型以及他们的区别

    2024-06-06 18:50:06       30 阅读
  3. 【无标题】2024.6.6

    2024-06-06 18:50:06       36 阅读
  4. linux c 求取MD5 转char 输出

    2024-06-06 18:50:06       33 阅读
  5. 每天一个数据分析题(三百五十一)-树状体系图

    2024-06-06 18:50:06       32 阅读
  6. Redis安装教程

    2024-06-06 18:50:06       34 阅读
  7. 比较PWM调光和无极调光

    2024-06-06 18:50:06       36 阅读
  8. 多页面项目的按需打包

    2024-06-06 18:50:06       29 阅读
  9. DNS域名解析过程

    2024-06-06 18:50:06       24 阅读