2017-09-21 12 views
2

に接頭辞なしで出力バケットを書き込む:どのように私は、コードを持っているスパーク

のような出力できます
dataFrame.write 
    .partitionBy("format", "dataset", "year", "month", "day", "hour") 
    .format(outputFormat) 
    .mode("overwrite") 
    .save(outputPath) 

enter image description here

がどのように私は接頭辞のないデータフレームを書くことができますか?名前の変更はありません。スパークまたはハーフープ構成でこれを行う方法はありますか?私は現在、フォルダの名前を変更するために別のbashスクリプトを使用しています。

明確にするために、私は、Sparkのコードを使用して次の構造を取得したい:

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

のようになります
関連する問題