2017-09-21 31 views
2

我有代碼:如何寫輸出鬥而不前綴星火

dataFrame.write 
    .partitionBy("format", "dataset", "year", "month", "day", "hour") 
    .format(outputFormat) 
    .mode("overwrite") 
    .save(outputPath) 

,讓等的輸出:enter image description here

我怎麼能不寫前綴數據幀?不重命名。 Spark或hadoop配置有沒有辦法做到這一點?目前我使用單獨的bash腳本來重命名文件夾。

要清楚,我想用星火代碼來獲得一個結構:

data 
-+parquet 
    +main 
    +2017 
     +01 
     +31 
      +15 

回答

3

你不能做到這一點。

如果你看一下星火代碼,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