使用Snappy压缩以ORC格式编写Spark数据帧

时间:2016-04-26 09:26:12

标签: amazon-s3 apache-spark dataframe orc

我成功地阅读了存储在S3中的文本文件,并使用Spark数据帧以ORC格式将其写回S3。 - inputDf.write().orc(outputPath);
我无法做的是使用snappy压缩转换为ORC格式。我已经尝试在写入时给出选项,因为将编解码器设置为snappy但Spark仍然正常编写ORC。如何使用Spark Dataframes将Snappy压缩到S3进行ORC格式编写?

1 个答案:

答案 0 :(得分:2)

对于任何面临同样问题的人, 在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);

   }
}