使用 Java 转换 Apache Avro 为 Parquet 数据格式(依赖更新)
source link: https://yanbin.blog/convert-apache-avro-to-parquet-in-java-use-hadoop-common-instead-of-hadoop-core/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
使用 Java 转换 Apache Avro 为 Parquet 数据格式(依赖更新)
2021-02-25 — Yanbin在上篇 使用 Java 转换 Apache Avro 为 Parquet 数据格式 实现把 Avro 数据转换为 Parquet 文件或内存字节数组,并支持 LogicalType。其中使用到了 hadoop-core 依赖,注意到它传递的依赖都非常老旧,到官方 Maven 仓库一看才发现还不是一般的老
长时间无人问津的项目,那一定有它的替代品。对啦,据说 hadoop-core 在 2009 年 7 月份更名为 hadoop-common 了,没找到官方说明,只看到 StackOverflow 的 Differences between Hadoop-coomon, Hadoop-core and Hadoop-client? 是这么说的。 应该是这么个说法,不然为何 hadoop-core 一直停留在 1.2.1 的版本,而且原来 hadoop-core 中的类在 hadoop-common 中可以找到,如类 org.apache.hadoop.fs.Path。不过在 hadoop-core-1.2.1 中的 fs/s3
包不见,这么重要的 s3 文件系统没了。
好了,针对上一篇,我们用活着的 hadoop-coomon 包来实现把 Avro 文件转换为 Parquet 文件或内存字节数组分别不同的 pom.xml 依赖配置,代码实现与前一篇 使用 Java 转换 Apache Avro 为 Parquet 数据格式 相同。
把 Avro 转换为 Parquet 文件的依赖
pom.xml 中依赖配置
还是重复一下转换 Avro 为 Parquet 文件的代码
AvroParquetWriter.builder() 这个方法中要用到 hadoop-common 的类 org.apache.hadoop.fs.Path。
转换 Avro 为内存字节数组的依赖
pom.xml
比前面生成 Parquet 文件要省几个依赖
再回顾一下内存中完成转换为 Parquet 字节数组的代码
InMemoryOutputFile 的内容再次重复如下
以后还是尽量用 hadoop-common 库吧。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK