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