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

Sha*_*kar 11 java apache-spark-sql

我正在Spark SQL用于阅读镶木地板和书写镶木地板文件.

但有些情况下,我需要编写DataFrameas文本文件而不是Json或Parquet.

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

Rad*_*scu 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");
Run Code Online (Sandbox Code Playgroud)

  • 这是Spark 1.3提供的官方示例.如果你使用Spark 1.4+,你应该按照你的建议使用`df.select("year","model").write.format`. (2认同)