我在 S3 中有一些遗留数据,我想使用 Spark 2 使用 Java API 将其转换为镶木地板格式。
我有所需的 Avro 模式(.avsc 文件)和它们使用 Avro 编译器生成的 Java 类,我想使用 Parquet 格式的这些模式存储数据。输入数据不是任何标准格式,但我有一个库,可以将旧文件中的每一行转换为 Avro 类。
是否可以将数据读取为JavaRDD<String>
,使用库将转换应用于 Avro 类,最后以镶木地板格式存储。
就像是:
JavaRDD<String> rdd = javaSparkContext.textFile("s3://bucket/path_to_legacy_files");
JavaRDD<MyAvroClass> converted = rdd.map(line -> customLib.convertToAvro(line));
converted.saveAsParquet("s3://bucket/destination"); //how do I do this
像上面这样的事情可行吗?稍后我想使用 Hive、Presto 和 Spark 处理转换后的 parquet 数据。