我试图通过id将Dataframe保存到csv分区中,为此我使用spark1.6和scala。函数partitionby(“id”)没有给出正确的结果。
我的代码在这里:
validDf.write
.partitionBy("id")
.format("com.databricks.spark.csv")
.option("header", "true")
.option("delimiter", ";")
.mode("overwrite")
.save("path_hdfs_csv")
My Dataframe looks like :
-----------------------------------------
| ID | NAME | STATUS |
-----------------------------------------
| 1 | N1 | S1 |
| 2 | N2 | S2 |
| 3 | N3 | S1 |
| 4 | N4 | S3 |
| 5 | N5 | S2 |
-----------------------------------------
此代码不基于列id创建3个csv默认分区(第0部分、第1部分、第2部分)。
我期望的是:为每个id获取子目录或分区。有什么帮助吗?
1条答案
按热度按时间ffscu2ro1#
spark1.6(或低于2的所有spark版本)中的spark csv不支持分区。
您的代码适用于spark>2.0.0。
对于spark版本,您需要首先准备csv并将其保存为文本(分区适用于
spark-text
):