是否可以直接从文件加载 parquet table?
Is it possible to load parquet table directly from file?
如果我有一个二进制数据文件(它可以转换为 csv 格式),有什么方法可以直接从中加载 parquet table?许多教程显示将 csv 文件加载到文本 table,然后从文本 table 加载到镶木地板 table。从效率的角度来看,是否可以像我已有的那样直接从二进制文件加载 parquet table?理想情况下使用 create external table 命令。
或者我需要先将其转换为 csv 文件?有文件格式限制吗?
遗憾的是,无法读取 Impala 中的自定义二进制格式。您应该将文件转换为 csv,然后在现有 csv 文件上创建一个外部 table 作为临时文件 table,最后插入到最终镶木地板 table 从临时 csv table。 Impala Parquet documentation 有更多信息和一些相关示例。参见压缩小文件部分,类似。
我不知道如何将文件格式转换为 csv,但您可以考虑编写一个程序将二进制格式转换为 Parquet。例如,您可以编写一个写入 Parquet 文件的 MapReduce 作业。下面是一个读取和写入 Parquet 的示例:
https://github.com/cloudera/parquet-examples/blob/master/MapReduce/TestReadWriteParquet.java
如果我有一个二进制数据文件(它可以转换为 csv 格式),有什么方法可以直接从中加载 parquet table?许多教程显示将 csv 文件加载到文本 table,然后从文本 table 加载到镶木地板 table。从效率的角度来看,是否可以像我已有的那样直接从二进制文件加载 parquet table?理想情况下使用 create external table 命令。 或者我需要先将其转换为 csv 文件?有文件格式限制吗?
遗憾的是,无法读取 Impala 中的自定义二进制格式。您应该将文件转换为 csv,然后在现有 csv 文件上创建一个外部 table 作为临时文件 table,最后插入到最终镶木地板 table 从临时 csv table。 Impala Parquet documentation 有更多信息和一些相关示例。参见压缩小文件部分,类似。
我不知道如何将文件格式转换为 csv,但您可以考虑编写一个程序将二进制格式转换为 Parquet。例如,您可以编写一个写入 Parquet 文件的 MapReduce 作业。下面是一个读取和写入 Parquet 的示例: https://github.com/cloudera/parquet-examples/blob/master/MapReduce/TestReadWriteParquet.java