我需要将我的数据从关系数据库移动到hdfs,但我想将数据保存为parquet avro文件格式。查看sqoop文档,我的选项似乎是——parquetfile或——avrodatafile,但不是两者的混合。根据我对下面这个博客/图片的理解,parquet avro的工作方式是,它是一个嵌入了avro模式的parquet文件,并且是一个转换器,用于将avro对象转换并保存到parquet文件,反之亦然。
我最初的假设是,如果使用sqoop选项-as parquetfile,那么保存到parquet文件的数据将丢失avro模式,转换器将无法工作。然而,在查看将数据保存为Parquet文件格式的sqoop代码时,它似乎使用了与avro相关的util,但我不确定发生了什么。有人能澄清一下吗?如果我不能用sqoop做到这一点,我还有什么其他的选择呢?
1条答案
按热度按时间hgtggwj01#
parquet-avro
主要是一个方便层,这样您就可以将apacheparquet中存储的数据读/写到avro对象中。当你再次读Parquet地板的时候parquet-avro
,avro模式是从parquet模式推断出来的(或者您应该能够指定一个显式avro模式)。所以你应该对--as-parquetfile
.