如何使用Sqoop以镶木地板文件格式保存数据?

时间:2017-03-13 22:27:09

标签: hadoop avro parquet sqoop

我需要将数据从关系数据库移动到HDFS,但我想将数据保存为parquet-avro文件格式。看看sqoop documentation似乎我的选项是--as-parquetfile或--as-avrodatafile,但不是两者的混合。根据我对下面这个blog /图片的理解,parquet-avro的工作方式是它是嵌入了avro架构的镶木地板文件,以及将avro对象转换并保存到镶木地板文件的转换器,反之亦然。

我最初的假设是,如果我使用sqoop选项--as-parquetfile,那么保存到镶木地板文件的数据将缺少avro架构,转换器将无法正常工作。但是,在查看将数据保存为镶木地板文件格式的sqoop code之后,它似乎确实使用了与avro相关的实用程序,但我不知道发生了什么。有人可以澄清吗?如果我不能用sqoop做这个,我还有其他选择吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

parquet-avro主要是一个便利层,因此您可以将存储在Apache Parquet中的数据读/写到Avro对象中。当您使用parquet-avro再次阅读Parquet时,将从Parquet架构推断出Avro架构(或者您应该能够指定显式的Avro架构)。因此,你应该对--as-parquetfile没问题。