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

11

我正在使用Spark SQL读取和写入Parquet文件。

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

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

2个回答

16

使用Databricks Spark-CSV,您可以直接保存到CSV文件并像以下示例一样从CSV文件中加载:

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

1
应该是 df.select("year", "model").write.format 而不是 df.select("year", "model").write().format 吗?否则会出现 TypeError: 'DataFrameWriter' object is not callable 错误。 - ajkl
3
这是Spark 1.3提供的官方示例。如果您使用的是Spark 1.4+,建议您使用df.select("year", "model").write.format - Radu Ionescu

3
df.repartition(1).write.option("header", "true").csv("filename.csv")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接