将Avro转换为Parquet格式

时间:2014-05-05 23:03:30

标签: apache-pig sqoop avro parquet apache-crunch

我想从数据库导出数据并转换为Avro + Parquet格式。 Sqoop支持Avro出口,但不支持Parquet。我尝试使用Apache Pig,Apache Crunch等将Avro对象转换为Parquet,但没有任何效果。

Apache pig给我“引起:org.apache.hadoop.mapreduce.lib.input.InvalidInputException:输入路径不存在”。但输入路径存在于该位置。

Apache Crunch总是抛出:java.lang.ClassNotFoundException:未找到类org.apache.crunch.impl.mr.run.CrunchMapper“尽管我已将其添加到Hadoop lib路径中。

将数据从DB导出为Parquet格式的最佳和简便方法是什么?

3 个答案:

答案 0 :(得分:2)

我使用Hive。

在Avro数据上创建外部表。 创建一个空的Parquet表。

然后 插入覆盖表PARQUET_TABLE 从AVRO_TABLE中选择*。

超级简单:)

答案 1 :(得分:2)

最新的sqoop(我认为1.4.6)支持导入包含Parquet格式数据的文件,也可以导入到Parquet并创建相关的Hive表。

答案 2 :(得分:0)

我能够使用sqoop1将mysql表转储到avro文件中,然后使用avro2parquet https://github.com/tispratik/avro2parquet转换工具将avro文件转换为镶木地板文件。一旦它在镶木地板,我可以上传到hdfs并在其上创建一个蜂巢表。如果在0.13之前运行配置单元版本,则需要在配置单元中使用镶木地板插件。 Hive原生支持镶木地板0.13。