2016-06-14 10 views
0

saveAsHadoopFileJavaPairRDDを使用して、RDDをavroファイルとしてスナッピー圧縮して保存しています。出力ファイルの拡張を強制的にsnappyにすることはできますか?saveAsHadoopFile - ファイルの拡張子

+1

私は確かに言うことはできませんが、並べ替えの何かをすることができる必要があります: 'pairRdd.saveAsHadoopFile( "を/ tmp /"、の.class、の.class、TextOutputFormat .class、org.apache.hadoop.io.compress.SnappyCodec.class) '。 をpairRDDのキーと値の型に置き換え、達成するために出力を調整する必要があります。もっと良い? –

+0

これを確認してください:http://stackoverflow.com/questions/33464990/i-am-using-spark-1-4-and-trying-to-save-as-orcfile-with-compression-snappy-but-i – RoyaumeIX

+0

返信いただきありがとうございます。私はSnappyCodecでavroファイルを書く方法を知っていますが、 ".avro"拡張子で保存されています。私はそれらが "。スナッピー"になる必要があります:) – wikp

答えて

0

AvroOutputFormatは、.avro拡張子がハードコードされており、変更できません。 適切な変更を加えてpatchをAvro JIRAにアップロードしました。 同様の問題がある場合は、(今のところ)AvroOutputFormatのサブクラスを単純にサブクラス化し、saveAsHadoopFileメソッドで使用する必要があります。 Scalaでは例えば:

rdd.saveAsHadoopFile("output/path", 
    classOf[AvroWrapper[GenericRecord]], 
    classOf[NullWritable], 
    classOf[YourOutputFormatClassName[GenericRecord]])