如何将Parquet文件转换为avro文件?

cx6n0qe3  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(496)

我是hadoop和大数据技术的新手。我喜欢将Parquet文件转换为avro文件并读取数据。我在一些论坛上搜索,建议使用avroparquetreader。

AvroParquetReader<GenericRecord> reader = new AvroParquetReader<GenericRecord>(file);
GenericRecord nextRecord = reader.read();

但我不知道如何包括avroparquetreader。我根本无法导入它。
我可以使用sparkshell读取这个文件,可能需要将它转换成一些json,然后将json转换成avro。但我在寻找一个更简单的解决方案。

anhgbhbe

anhgbhbe1#

如果您能够使用sparkDataframe,您将能够在apachespark中本机读取parquet文件,例如(在python伪代码中):

df = spark.read.parquet(...)

要保存文件,可以使用 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套装。

相关问题