Apache spark 将dataframe转换为rdd并丢失标题列

Apache spark 将dataframe转换为rdd并丢失标题列,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我尝试了下面的方法,但是标题列在数据之后,理想情况下应该是第一列 有人能帮我吗 val header = sc.parallelize(Seq(df.columns.mkString("|"))) val data = df.map(_.mkString("|")) val final = header.union(data) final.coalesce(1).saveAsTextFile("path") 为什么不直接将数据帧写入文件 使用以下代码将管道分隔数据帧写入文件: mydf.

我尝试了下面的方法,但是标题列在数据之后,理想情况下应该是第一列

有人能帮我吗

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

如果我使用coalesce(1),它将运行得非常慢