我是hadoop和大数据技术的新手。我喜欢将 Parquet 文件转换为avro文件并读取该数据。我在几个论坛中搜索,它建议使用AvroParquetReader。
AvroParquetReader<GenericRecord> reader = new AvroParquetReader<GenericRecord>(file);
GenericRecord nextRecord = reader.read();
但是我不确定如何包括AvroParquetReader。我不能够
完全导入。
我可以使用spark-shell读取此文件,并且可以将其转换为某些JSON
然后可以将该JSON转换为avro。但我正在寻找
更简单的解决方案。
最佳答案
如果您能够使用Spark DataFrames,则可以在Apache Spark中原生读取Parquet文件,例如(在Python伪代码中):
df = spark.read.parquet(...)
要保存文件,可以使用
spark-avro
Spark Package。要将DataFrame写为avro,将类似于:df.write.format("com.databricks.spark.avro").save("...")
不要忘记,您需要在您的Spark集群版本中包括正确版本的
spark-avro
Spark软件包(例如,使用与默认Spark 2.0集群匹配的Scala 2.11,3.1.0-s2.11对应于spark-avro
软件包3.1) 。有关如何使用该软件包的更多信息,请参考https://spark-packages.org/package/databricks/spark-avro。一些方便的参考资料包括:
关于hadoop - 怎么把 Parquet 文件转换成Avro文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41294109/