2016-04-26 9 views
2

S3に格納されたテキストファイルを読み込み、Sparkデータフレームを使用してORCフォーマットでS3に書き戻すことに成功しました。 - inputDf.write().orc(outputPath);
私ができないのは、スナップ圧縮でORC形式に変換することです。私はすでにコーデックの設定を書いている間にオプションを与えようとしましたが、Sparkはまだ普通のORCとして書いています。 Spark Dataframesを使用してS3にスナッピー圧縮してORC形式で書き込む方法Sparkデータフレームをスニッピー圧縮でORCフォーマットで書く

+0

https://issues.apache.org/jira/browse/SPARK-13​​543を参照してください –

+0

デフォルト(zlibのは)とにかくスナッピーよりも良いかもしれません。https://community.hortonworks.com/questions/4067 /snappy-vs-zlib-pros-and-cons-for-each-compression.html –

+0

@MarkRajcokありがとう、つまり、Spark 2.0を使用している場合にのみ.optionを使用してORC形式を圧縮できます。 出力を圧縮できる場所を他に提案できますか?私はAmazon EMRでSpark 1.6を使用しています – Karshit

答えて

1

同じ問題に直面している人は、デフォルトではSpark 2.0の が可能です。 ORCのデフォルトの圧縮形式はsnappyに設定されています。

public class ConvertToOrc { 
    public static void main(String[] args) { 
     SparkSession spark = SparkSession 
       .builder() 
       .appName("OrcConvert") 
       .getOrCreate(); 
     String inputPath = args[0]; 
     String outputPath = args[1]; 

     Dataset<Row> inputDf = spark.read().option("sep", "\001").option("quote", "'").csv(inputPath); 
     inputDf.write().format("orc").save(outputPath); 

    } 
} 
+1

ORCのデフォルトの圧縮を_change_する方法を本当に知りたい – Azuaron

関連する問題