如何将页眉和页脚添加到数据框中,并将其保存为scala中某个位置的纺织物?

如何将页眉和页脚添加到数据框中,并将其保存为scala中某个位置的纺织物?,scala,dataframe,apache-spark,apache-spark-sql,Scala,Dataframe,Apache Spark,Apache Spark Sql,假设我有一个Json文件,并创建了一个数据帧,如下所示 val jsonDf=spark.read.json("file:///home/ubuntu/Desktop/jsondata") 现在我需要向jsondf添加页眉和页脚,并将其保存为HDFS上的文本文件 jsonDf.write.saveAsTextFile("file:///home/ubuntu/filerJson") // This is to save the dataframe 如何同时添加页眉和页脚?您可以使用unio

假设我有一个Json文件,并创建了一个数据帧,如下所示

val jsonDf=spark.read.json("file:///home/ubuntu/Desktop/jsondata")
现在我需要向jsondf添加页眉和页脚,并将其保存为HDFS上的文本文件

jsonDf.write.saveAsTextFile("file:///home/ubuntu/filerJson") // This is to save the dataframe 

如何同时添加页眉和页脚?

您可以使用
union
组合所有数据帧

scala> val headerDF = Seq(("=========== Header ==========")).toDF("value")
headerDF: org.apache.spark.sql.DataFrame = [value: string]

scala> val footerDF = Seq(("=========== Footer ==========")).toDF("value")
footerDF: org.apache.spark.sql.DataFrame = [value: string]

scala> headerDF.union(df.select(to_json(struct($"*")).as("value"))).union(footerDF).repartition(1).write.text("/tmp/hfd")
注意
-如果使用数据框中的
文本源
,则所有数据框列应相同&列数据类型应为
字符串

scala> val headerDF = Seq(("=========== Header ==========")).toDF("value")
headerDF: org.apache.spark.sql.DataFrame = [value: string]

scala> val footerDF = Seq(("=========== Footer ==========")).toDF("value")
footerDF: org.apache.spark.sql.DataFrame = [value: string]

scala> headerDF.union(df.select(to_json(struct($"*")).as("value"))).union(footerDF).repartition(1).write.text("/tmp/hfd")

页眉和页脚的值是什么,可以添加示例输入json和输出吗?@Srinivas-header-“文件从这里开始”,footer-“文件从这里结束”。任意随机的页眉和页脚。我在寻找如何在以文件形式编写时添加它们