如何将镶木地板文件转换为Avro文件?

时间:2016-12-23 01:41:01

标签: hadoop apache-spark parquet spark-avro

我是hadoop和Big data Technologies的新手。我喜欢将镶木地板文件转换为avro文件并读取该数据。我在几个论坛中搜索,并建议使用AvroParquetReader。

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

但我不确定如何包含AvroParquetReader。我不能够 完全导入它。

我可以使用spark-shell读取此文件,并可能将其转换为某些JSON 然后JSON可以转换为avro。但我正在寻找一个 更简单的解决方案。

1 个答案:

答案 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

一些方便的参考资料包括:

  1. Spark SQL Programming Guide
  2. spark-avro Spark包。