Spark SQL - 如何将DataFrame写入文本文件?

Spark SQL  - 如何将DataFrame写入文本文件?

问题描述:

我正在使用 Spark SQL 来阅读镶木地板和书写镶木地板文件。

I am using Spark SQL for reading parquet and writing parquet file.

但有些情况下,我需要将 DataFrame 写为文本文件而不是Json或Parquet。

But some cases,i need to write the DataFrame as text file instead of Json or Parquet.

是否支持任何默认方法或我有将该DataFrame转换为 RDD 然后使用 saveAsTextFile()方法?

Is there any default methods supported or i have to convert that DataFrame to RDD then use saveAsTextFile() method?

使用 Databricks Spark-CSV 即可直接保存到CSV文件,然后像这样从CSV文件加载

Using Databricks Spark-CSV you can save directly to a CSV file and load from a CSV file afterwards like this


import org.apache.spark.sql.SQLContext

SQLContext sqlContext = new SQLContext(sc);
DataFrame df = sqlContext.read()
    .format("com.databricks.spark.csv")
    .option("inferSchema", "true")
    .option("header", "true")
    .load("cars.csv");

df.select("year", "model").write()
    .format("com.databricks.spark.csv")
    .option("header", "true")
    .option("codec", "org.apache.hadoop.io.compress.GzipCodec")
    .save("newcars.csv");