是否可以直接从文件加载镶木地板?

Posted

技术标签:

【中文标题】是否可以直接从文件加载镶木地板?【英文标题】:Is it possible to load parquet table directly from file? 【发布时间】:2015-02-09 18:27:58 【问题描述】:

如果我有一个二进制数据文件(可以转换为 csv 格式),有没有办法直接从它加载 parquet 表?许多教程显示将 csv 文件加载到文本表,然后从文本表加载到 parquet 表。从效率的角度来看,是否可以直接从我已经拥有的二进制文件中加载镶木地板表?理想情况下使用创建外部表命令。 还是我需要先将其转换为 csv 文件?有文件格式限制吗?

【问题讨论】:

昨天我使用 apache Drill 生成的 parquet 文件创建了一个外部表。 【参考方案1】:

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

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

【讨论】:

那个链接现在已经消失了,但我在这里发现了类似的:github.com/gregoryg/parquet-examples/tree/master/MapReduce

以上是关于是否可以直接从文件加载镶木地板?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 hadoopish 文件夹加载镶木地板文件

SparkSQL - 直接读取镶木地板文件

我可以直接查询以镶木地板格式存储在 s3 中的数据的红移表吗

我们可以直接将 Parquet 文件加载到 Hive 中吗?

Impala:从 mysql 转储创建镶木地板

是否可以从 Dask 读取镶木地板元数据?