Как добавить верхний и нижний колонтитулы к фрейму данных и сохранить его как текстильный файл в каком-либо месте в scala? - PullRequest
0 голосов
/ 28 апреля 2020

Предположим, у меня есть файл 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 

Как добавить верхний и нижний колонтитулы одновременно?

1 Ответ

0 голосов
/ 28 апреля 2020

Вы можете использовать union для объединения всех DataFrame.

Note - Все столбцы DataFrame должны быть одинаковыми, а тип данных Column должен быть string, если вы используете text source из DataFrame.

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")
...