在 Spark 中使用 partitionBy 保存 CSV 文件
Saving CSV file with partitionBy in Spark
我正在尝试将数据框另存为按列分区的 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)
我在这里错过了什么?
partitionBy
支持必须作为给定数据源的一部分来实现,目前 (v1.3) 在 Spark CSV 中不受支持。参见:https://github.com/databricks/spark-csv/issues/123
我正在尝试将数据框另存为按列分区的 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)
我在这里错过了什么?
partitionBy
支持必须作为给定数据源的一部分来实现,目前 (v1.3) 在 Spark CSV 中不受支持。参见:https://github.com/databricks/spark-csv/issues/123