我在S3中使用Spark 2使用Java API將一些遺留數據轉換爲parquet格式。在Spark中將數據轉換爲Parquet
我有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來處理已轉換的實木複合地板數據。
搜索星火峯會PRES。由史蒂夫Loughran(霍頓)關於「對象商店」... –
@SamsonScharfrichter不回答我的問題。我看到的唯一與遠程相關的東西是他如何將一些csv數據轉換爲Parquet。他使用sparkSession.csv()調用來加載我無法使用的數據,因爲我需要使用自定義的反序列化器。 –
那麼,你的**實際**問題是什麼?是否將自定義的'JavaRDD'轉換爲常規的DataFrame?關於將您的自定義材料保存爲Parquet格式?關於將其保存到S3對象存儲?關於使用不知道RDD是什麼的另一種工具讀取自定義內容的方法?以上的組合? –