- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我是 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 包。要将 DataFrame 写成 avro,应该是这样的:
df.write.format("com.databricks.spark.avro").save("...")
不要忘记,您需要在您的 Spark 集群版本中包含正确版本的 spark-avro
Spark 包(例如,3.1.0-s2.11 对应于 spark-avro
package 3.1 using Scala 2.11 which matches the default Spark 2.0 cluster).有关如何使用该软件包的更多信息,请参阅 https://spark-packages.org/package/databricks/spark-avro .
一些方便的引用资料包括:
关于hadoop - 如何将 Parquet 文件转换为 Avro 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41294109/
我是一名优秀的程序员,十分优秀!