我是hadoop和大数据技术的新手。我喜欢将Parquet文件转换为avro文件并读取数据。我在一些论坛上搜索,建议使用avroparquetreader。
AvroParquetReader<GenericRecord> reader = new AvroParquetReader<GenericRecord>(file);
GenericRecord nextRecord = reader.read();
但我不知道如何包括avroparquetreader。我根本无法导入它。
我可以使用sparkshell读取这个文件,可能需要将它转换成一些json,然后将json转换成avro。但我在寻找一个更简单的解决方案。
1条答案
按热度按时间anhgbhbe1#
如果您能够使用sparkDataframe,您将能够在apachespark中本机读取parquet文件,例如(在python伪代码中):
要保存文件,可以使用
spark-avro
Spark组件。要将Dataframe写成avro,它应该是这样的:df.write.format("com.databricks.spark.avro").save("...")
别忘了你需要包含正确版本的spark-avro
带有您的spark cluster版本的spark软件包(例如3.1.0-s2.11对应于spark-avro
包3.1使用scala 2.11,它匹配默认的spark 2.0集群)。有关如何使用该软件包的更多信息,请参阅https://spark-packages.org/package/databricks/spark-avro.一些方便的参考资料包括:
spark sql编程指南
spark avro spark套装。