我已经成功地在使用Spark数据框架读取存储在S3中的文本文件,并将其以ORC格式写回S3。代码如下:inputDf.write().orc(outputPath);
但是,我无法使用Snappy压缩转换为ORC格式。我已经尝试在写入时设置编解码器选项为Snappy,但Spark仍然按照普通的ORC格式写入。那么,如何使用Spark数据框架实现将数据以ORC格式和Snappy压缩方式写入到S3呢?
我已经成功地在使用Spark数据框架读取存储在S3中的文本文件,并将其以ORC格式写回S3。代码如下:inputDf.write().orc(outputPath);
但是,我无法使用Snappy压缩转换为ORC格式。我已经尝试在写入时设置编解码器选项为Snappy,但Spark仍然按照普通的ORC格式写入。那么,如何使用Spark数据框架实现将数据以ORC格式和Snappy压缩方式写入到S3呢?
如果有人遇到同样的问题,在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);
}
}