У меня есть некоторые устаревшие данные в S3, которые я хочу преобразовать в формат паркета, используя Spark 2, используя Java API.Преобразование данных в паркет в Spark
У меня есть желаемая схема Avro (файлы .avsc) и их сгенерированные классы Java с использованием компилятора Avro, и я хочу сохранить данные, используя эту схему в формате Паркет. Входные данные не в стандартном формате, но у меня есть библиотека, которая может преобразовывать каждую строку из старых файлов в классы 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.
Поиск для вр Summit Спарка. Стив Лофран (Horton) о «объектных магазинах» ... –
@SamsonScharfrichter Не отвечает на мой вопрос. Единственное, что я видел, это то, как он преобразовал некоторые данные csv в Parquet. Он использует вызов sparkSession.csv() для загрузки данных, которые я не могу, поскольку мне нужно использовать собственный десериализатор. –
Итак, в чем ваш ** актуальный вопрос? Речь идет о преобразовании пользовательского «JavaRDD» в обычный DataFrame? О сохранении ваших пользовательских материалов в формате Паркета? О сохранении этого в хранилище объектов S3? О способе чтения ваших пользовательских материалов с помощью другого инструмента, который не знает, что такое RDD? Комбинация вышеперечисленного? –