【问题标题】:Writing Spark dataframe in ORC format with Snappy compression使用 Snappy 压缩以 ORC 格式编写 Spark 数据帧
【发布时间】:2016-08-20 00:48:41
【问题描述】:

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

【问题讨论】:

  • 默认的 (zlib) 可能比 Snappy 更好:community.hortonworks.com/questions/4067/…
  • @MarkRajcok 谢谢,这意味着我只有在使用 Spark 2.0 时才能使用 .option 压缩 ORC 格式。有没有其他方法可以建议我可以在哪里压缩输出。我在使用 Spark 1.6 的 Amazon EMR
  • 我还没有找到在 Spark 1.x 上将数据帧作为 ORC-snappy 写出的方法。

标签: amazon-s3 apache-spark dataframe orc


【解决方案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);

   }
}

【讨论】:

    猜你喜欢
    • 2018-07-27
    • 2015-06-02
    • 1970-01-01
    • 2015-12-13
    • 2017-02-02
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多