我是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

一些方便的参考资料包括:
  • Spark SQL Programming Guide
  • spark-avro Spark软件包。
  • 关于hadoop - 怎么把 Parquet 文件转换成Avro文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41294109/

    10-13 09:15
    查看更多