2017-03-13 31 views
0

我需要将数据从关系数据库移到HDFS,但我想将数据保存为parquet-avro文件格式。看看sqoop documentation它看起来像我的选项是--as-parquetfile或--as-avrodatafile,但不是两者的组合。从我对下面这个blog /图片的理解中,parquet-avro的工作方式是它嵌入了avro模式的嵌入式文件,以及一个将avro对象转换并保存到parquet文件的转换器,反之亦然。如何使用Sqoop将数据保存为parquet-avro文件格式?

我最初的假设是,如果我使用sqoop选项--as-parquetfile,那么保存到parquet文件的数据将会丢失avro模式,转换器将无法工作。然而,在查看将数据保存为parquet文件格式的sqoop code时,它似乎使用与avro相关的util,但我不确定发生了什么。有人可以澄清吗?如果我无法使用sqoop来做到这一点,我还有其他选择吗?

enter image description here

回答

0

parquet-avro主要是一个方便的层,这样就可以读出存储在Apache的镶木成阿夫罗对象/写数据。当你用parquet-avro再次阅读Parquet时,Avro模式是从Parquet模式推断的(或者你应该能够指定一个明确的Avro模式)。因此,你应该罚款--as-parquetfile

相关问题