apache-spark - 将数据帧转换为 rdd 并丢失标题列
问题描述
我已经尝试过以下方法,但标题列在数据之后,理想情况下它应该是第一列!
任何人都可以帮助我吗?
val header = sc.parallelize(Seq(df.columns.mkString("|")))
val data = df.map(_.mkString("|"))
val final = header.union(data)
final.coalesce(1).saveAsTextFile("path")
解决方案
为什么不直接将数据框写入文件。
使用以下代码将管道分隔的数据帧写入文件:
mydf.coalesce(1)
.write
.option("header","true")
.option("sep","|")
.mode("overwrite")
.csv("output/path")
要将数据帧转换为 rdd,只需使用mydf.rdd
推荐阅读
- python-3.x - cv2.VideoWriter 不工作(Windows 10)
- php - Apache / WSGI 和 PHP 突然无法连接到 MSSQL 服务器——站点宕机
- dapper - 使用 Split-on 和 Query Multiple 在 dapper 中映射多个对象
- swift3 - 在 userdefaults 中存储服务器响应时....我收到错误
- node.js - REG:将 NODEJS 连接到 ORACLEDB 时没有结果
- css - 移动设备上不显示子菜单箭头
- node.js - jdbc节点包安装失败
- sql - 如何将 2 行转换为 tsql 中的列?
- php - Laravel 5.7 雄辩
- bash - 如何执行打开交互式并在容器内继续的脚本