我有代码:
dataFrame.write
.partitionBy("format", "dataset", "year", "month", "day", "hour")
.format(outputFormat)
.mode("overwrite")
.save(outputPath)
如何在没有前缀的情况下编写dataFrame?不重命名。有没有办法通过Spark或hadoop配置来做到这一点?目前我正在使用单独的bash-script重命名文件夹。
要清楚,我想使用Spark代码获取下一个结构:
data
-+parquet
+main
+2017
+01
+31
+15
答案 0 :(得分:4)
你不能这样做。
如果您查看Spark代码,类ExternalCatalogUtils.getPartitionPathString
,您会看到:
def getPartitionPathString(col: String, value: String): String = {
val partitionString = if (value == null || value.isEmpty) {
DEFAULT_PARTITION_NAME
} else {
escapePathName(value)
}
escapePathName(col) + "=" + partitionString
}
所以该计划总是像column=value