hadoop - 如何使用Sqoop以Parquet-Avro文件格式保存数据?

标签 hadoop avro parquet sqoop

我需要将数据从关系数据库移动到HDFS,但我想将数据保存为parquet-avro文件格式。查看sqoop documentation似乎我的选项是--as-parquetfile或--as-avrodatafile,但不是两者的混合。根据我对以下blog / picture的理解,parquet-avro的工作方式是它是一个嵌入了avro模式的Parquet文件,并且是一个将avro对象转换并保存为Parquet文件以及反之的转换器。

我最初的假设是,如果我使用sqoop选项--as-parquetfile,那么保存到 Parquet 文件中的数据将丢失avro模式,并且转换器将无法工作。但是,在将数据保存为 Parquet 文件格式的sqoop code中,它似乎确实使用了与avro相关的实用程序,但我不确定发生了什么。有人可以澄清吗?如果我无法使用Squoop进行此操作,我还有哪些其他选择?

enter image description here

最佳答案

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

关于hadoop - 如何使用Sqoop以Parquet-Avro文件格式保存数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42774556/

相关文章:

hadoop - Mapreduce 并行副本与 http 线程

hadoop - 在 map & reduce 之后运行几行

hadoop - 从多个Avro文件配置单元表?

apache-spark - 读取或写入 Parquet 格式数据时出错

sql - Hive 中的嵌套查询不起作用 : ParesException

arrays - 如何将数据数组导入到 Hive 表中的单独行中?

Azure 解决方案将流保存为 Parquet 的 blob 文件

scala - 为什么会出现此编译错误 : "could not find implicit value for kstream.Consumed" and how could I fix it?

hadoop - 十亿条记录,其中Parquet文件格式和HadoopText输入格式的Spark联接(过滤器)

pyspark - 减少 Parquet 文件数量的最佳方法