У меня есть устаревшие данные в S3, которые я хочу преобразовать в формат паркета с помощью Spark 2 с помощью Java API.
У меня есть желаемая схема Avro (файлы .avsc) и их сгенерированные классы Java с использованием компилятора Avro, и я хочу сохранить данные, используя эту схему в формате 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.
JavaRDD<stuff>
в обычный DataFrame? О сохранении ваших нестандартных вещей в формате Parquet? О сохранении этого в хранилище объектов S3? О способе чтения ваших пользовательских материалов с помощью другого инструмента, который не знает, что такое RDD? Комбинация вышеперечисленного? - person Samson Scharfrichter   schedule 18.01.2017