【发布时间】:2020-11-05 09:44:14
【问题描述】:
我希望从 Kafka 使用的 Avro 消息创建一堆 ORC 文件。
我在下面看到了一些使用 Spark 的示例代码。我只是在一个独立的进程中运行它,并想知道我应该研究什么样的选项。例如,我想将这些文件泵入像 S3 这样的云存储中。有推荐的方法吗?
SparkConf sparkConf = new SparkConf()
.setAppName("Converter Service")
.setMaster("local[*]");
SparkSession sparkSession = SparkSession.builder().config(sparkConf).enableHiveSupport().getOrCreate();
// read input data
Dataset<Row> events = sparkSession.read()
.format("json")
.schema(inputConfig.getSchema()) // StructType describing input schema
.load(inputFile.getPath());
// write data out
DataFrameWriter<Row> frameWriter = events
.selectExpr(
// useful if you want to change the schema before writing it to ORC, e.g. ["`col1` as `FirstName`", "`col2` as `LastName`"]
JavaConversions.asScalaBuffer(outputSchema.getColumns()))
.write()
.options(ImmutableMap.of("compression", "zlib"))
.format("orc")
.save(outputUri.getPath());
【问题讨论】:
标签: apache-spark apache-kafka avro orc