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

文章目录

  • [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
相关推荐
howard20051 个月前
4.2.5 Spark SQL 分区自动推断
spark sql·自动分区推断
howard20051 个月前
4.2.4 Spark SQL 数据写入模式
spark sql·数据写入模式
howard20051 个月前
4.8.1 利用Spark SQL实现词频统计
spark sql·词频统计
howard20051 个月前
4.8.4 利用Spark SQL实现分组排行榜
spark sql·分组排行榜
howard20051 个月前
4.2.3 Spark SQL 手动指定数据源
spark sql·手动指定数据源
howard20051 个月前
4.1.1 Spark SQL概述
数据集·spark sql·数据帧
howard20051 个月前
4.8.3 利用SparkSQL统计每日新增用户
spark sql·每月新增用户数
howard20051 个月前
4.8.2 利用Spark SQL计算总分与平均分
spark sql·成绩统计
howard20051 个月前
4.8.5 利用Spark SQL统计网站每月访问量
spark sql·网站每月访问量
IT成长日记2 个月前
【Hive入门】Hive与Spark SQL深度集成:执行引擎性能全面对比与调优分析
hive·sql·spark·性能分析·spark sql·执行引擎