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

文章目录

  • [1. 查看数据文件](#1. 查看数据文件)

  • [2. 读取数据文件得到单例数据帧](#2. 读取数据文件得到单例数据帧)

  • [3. 将单列数据帧转换成多列数据帧](#3. 将单列数据帧转换成多列数据帧)

  • 在本次实战中,我们的目标是将存储在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. 将单列数据帧转换成多列数据帧

scala 复制代码
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
相关推荐
howard20059 天前
4.7 Spark SQL函数分类与应用
开窗函数·spark sql·自定义函数·内置函数
howard200515 天前
4.2.2 Spark SQL数据源 - 手动指定数据源格式
spark sql·手动指定数据源格式
howard200515 天前
4.2.1 Spark SQL数据源 - 初探默认数据源格式
spark sql·默认数据源格式
howard200516 天前
4.1 Spark SQL数据帧与数据集
数据集·spark sql·数据帧
zmj3203241 个月前
CAN数据帧详解
网络·can·canfd·数据帧