当前位置: 首页 > news >正文

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

文章目录

  • 1. 查看数据文件
  • 2. 读取数据文件得到单例数据帧
  • 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. 将单列数据帧转换成多列数据帧

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
    在这里插入图片描述
http://www.lryc.cn/news/364491.html

相关文章:

  • 信息学奥赛初赛天天练-20-完善程序-vector数组参数引用传递、二分中值与二分边界应用的深度解析
  • 推荐系统学习 一
  • 分库分表详解
  • 【java前端课堂】04_类的继承
  • React nginx配置,一个端口代理多个项目(转发后找不到CSS,JS及图片资源问题解决)
  • Unity协程详解
  • 【iOS】UI学习(二)
  • React路由(React笔记之五)
  • 调用讯飞星火API实现图像生成
  • reduce过滤递归符合条件的数据
  • Go微服务: 基于rocketmq:5.2.0搭建RocketMQ环境,以及示例参考
  • Wpf 使用 Prism 开发MyToDo应用程序
  • vue-Dialog 自定义title样式
  • 数据库主键设计
  • 小熊家务帮day13-day14 门户管理(ES搜索,Canal+MQ同步,索引同步)
  • Android8.1高通平台修改默认输入法
  • 49. 字母异位词分组
  • 负压实验室设计建设方案
  • 作文笔记10 复述故事
  • 业务安全蓝军测评标准解读—业务安全体系化
  • 关于焊点检测SJ-BIST)模块实现
  • 使用 Logback.xml 配置文件输出日志信息
  • Allegro-开店指南
  • Spring AI 第二讲 之 Chat Model API 第二节Ollama Chat
  • 服务器环境搭建
  • 数仓建模—指标体系指标拆解和选取
  • 微信小程序如何在公共组件中改变某一个页面的属性值
  • TCP/UDP的区别
  • JavaWeb1 Json+BOM+DOM+事件监听
  • DSP6657 GPIO中断学习(只支持GPIO0-15)