在Spark中使用partitionBy保存CSV文件

时间:2016-02-09 02:40:34

标签: csv apache-spark spark-dataframe spark-csv

我正在尝试将数据框保存为按列分区的CSV文件。

val schema = new StructType(
      Array(
        StructField("ID",IntegerType,true),
        StructField("State",StringType,true),
        StructField("Age",IntegerType,true)
      )
)

val df = sqlContext.read.format("com.databricks.spark.csv")
        .options(Map("path" -> filePath).schema(schema).load()

df.write.partitionBy("State").format("com.databricks.spark.csv").save(outputPath)

但输出不会随任何分区信息一起保存。看起来像partitionBy完全被忽略了。没有错误。如果我尝试使用镶木地板格式,它会起作用。

df.write.partitionBy("State").parquet(outputPath)

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

partitionBy支持必须作为给定数据源的一部分实现,并且Spark CSV中不支持现在(v1.3)。请参阅:DefaultDirName