Ich verwende saveAsHadoopFile
von JavaPairRDD
, um RDD als AVRO-Datei mit bissiger Komprimierung zu speichern. Ist es möglich, die Erweiterung von Ausgabedateien auf snappy
zu erzwingen?saveAsHadoopFile - Dateierweiterung
0
A
Antwort
0
AvroOutputFormat
hat hardcodiert .avro
Erweiterung und erlaubt es nicht, es zu ändern. Ich habe eine patch auf die Avro JIRA mit entsprechenden Änderungen hochgeladen. Wenn Sie ein ähnliches Problem haben, müssen Sie (wie jetzt) einfach die Unterklasse AvroOutputFormat
verwenden und sie in saveAsHadoopFile
Methode verwenden. Zum Beispiel in Scala:
rdd.saveAsHadoopFile("output/path",
classOf[AvroWrapper[GenericRecord]],
classOf[NullWritable],
classOf[YourOutputFormatClassName[GenericRecord]])
ich nicht sicher sagen können, aber Sie sollten in der Lage sein, etwas Derartiges zu tun: 'pairRdd.saveAsHadoopFile ("/ tmp /", .class-, .class-, TextOutputFormat .class, org.apache.hadoop.io.compress.SnappyCodec.class) '. Sie müssen und durch Ihre Schlüssel und Werttypen pairRDD ersetzen und die Ausgabe an das anpassen, was Sie erreichen möchten. Etwas besser ? –
Überprüfen Sie dies: http://StackOverflow.com/Questions/33464990/I-am-using-Spark-1-4-and-try-to-save-as-orcfile-with-Compression-SNAVY-BUT-I – RoyaumeIX
Danke für die Antwort. Ich weiß, wie man Avro-Dateien mit SnappyCodec schreibt, aber sie werden mit der Erweiterung ".avro" gespeichert. Ich brauche sie ".snappy" :) – wikp