hadoop - 是否可以直接从文件加载 Parquet 表?

标签 hadoop cloudera-cdh impala parquet

如果我有一个二进制数据文件(可以转换为csv格式),有什么方法可以直接从中加载 Parquet 表吗?许多教程显示将 csv 文件加载到文本表,然后从文本表加载到 Parquet 表。从效率的角度来看,是否可以像我已有的那样直接从二进制文件加载 Parquet 表?理想情况下使用创建外部表命令。 或者我需要先将其转换为 csv 文件?文件格式有限制吗?

最佳答案

不幸的是,无法在 Impala 中读取自定义二进制格式。您应该将文件转换为 csv,然后在现有 csv 文件上创建一个外部表作为临时表,最后插入到从临时 csv 表读取的最终 Parquet 表中。 Impala Parquet documentation有更多信息和一些相关示例。请参阅有关压缩小文件的部分,这是类似的。

我不知道如何将文件格式转换为 csv,但您可能会考虑编写一个程序将二进制格式转换为 Parquet。例如,您可以编写一个写入 Parquet 文件的 MapReduce 作业。下面是一个读取和写入 Parquet 的示例: https://github.com/cloudera/parquet-examples/blob/master/MapReduce/TestReadWriteParquet.java

关于hadoop - 是否可以直接从文件加载 Parquet 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28416731/

相关文章:

java - 使用 keytab 文件连接到 Impala 的 jdbc URL

hadoop - 在配置单元中使用外部表支持数组列类型的最佳方法是什么?

hadoop - Cloudera REST Api获取任务资源

impala - 如果无效元数据可以做同样的事情,为什么需要在 Impala 中刷新

r - 使用 Impala 连接时区在数据框中更改为 GMT

hadoop - 使用Ganglia监控Hadoop-metrics2

azure - 从 Azure SQL 数据仓库查询 Hadoop ORC 表

hadoop - 如何将mysql DDL转换成hive DDL

hadoop - 无法在 MapReduce 模式下使用 Java 运行 Embedded Pig

hadoop - hbase importtsv未在cloudera中运行