首页 > 解决方案 > 将数据帧转换为 rdd 并丢失标题列

问题描述

我已经尝试过以下方法,但标题列在数据之后,理想情况下它应该是第一列!

任何人都可以帮助我吗?

val header = sc.parallelize(Seq(df.columns.mkString("|"))) 
val data = df.map(_.mkString("|")) 
val final = header.union(data) 
final.coalesce(1).saveAsTextFile("path")

在此处输入图像描述

标签: apache-sparkapache-spark-sql

解决方案


为什么不直接将数据框写入文件。

使用以下代码将管道分隔的数据帧写入文件:

mydf.coalesce(1)
      .write
      .option("header","true")
      .option("sep","|")
      .mode("overwrite")
      .csv("output/path") 

要将数据帧转换为 rdd,只需使用mydf.rdd


推荐阅读