我是hadoop和Big data Technologies的新手。我喜欢将镶木地板文件转换为avro文件并读取该数据。我在几个论坛中搜索,并建议使用AvroParquetReader。
AvroParquetReader<GenericRecord> reader = new AvroParquetReader<GenericRecord>(file);
GenericRecord nextRecord = reader.read();
但我不确定如何包含AvroParquetReader。我不能够 完全导入它。
我可以使用spark-shell读取此文件,并可能将其转换为某些JSON 然后JSON可以转换为avro。但我正在寻找一个 更简单的解决方案。
答案 0 :(得分:3)
如果您能够使用Spark DataFrames,您将能够在Apache Spark中本地读取镶木地板文件,例如(在Python伪代码中):
df = spark.read.parquet(...)
要保存文件,您可以使用spark-avro
Spark包。要将DataFrame作为avro编写,它将类似于:
df.write.format("com.databricks.spark.avro").save("...")
不要忘记您需要在您的Spark群集版本中包含正确版本的spark-avro
Spark包(例如3.1.0-s2.11对应spark-avro
包3.1使用与默认Spark 2.0集群匹配的Scala 2.11。有关如何使用该软件包的更多信息,请参阅https://spark-packages.org/package/databricks/spark-avro。
一些方便的参考资料包括: