插入 Parquet 文件会生成 512 MB 文件。如何生成 1 GB 的文件?

Posted

技术标签:

【中文标题】插入 Parquet 文件会生成 512 MB 文件。如何生成 1 GB 的文件?【英文标题】:Insert into Parquet file generates 512 MB files. How to generate 1 GB file? 【发布时间】:2014-09-17 18:50:51 【问题描述】:

我正在测试 Parquet 文件格式并使用 Impala 外部表将数据插入 Parquet 文件。

以下是可能影响Parquet文件大小的参数集:

NUM_NODES: 1 
PARQUET_COMPRESSION_CODEC: none
PARQUET_FILE_SIZE: 1073741824

我正在使用以下插入语句写入 Parquet 文件。

INSERT INTO TABLE parquet_test.parquetTable
PARTITION (pkey=X)
SELECT col1, col2, col3 FROM map_impala_poc.textTable where col1%100=X;

我想生成大约 1 GB 的文件大小并相应地对数据进行分区,以便每个分区的 Parquet 格式数据少于 1 GB。但是,此插入操作不会生成超过 512 MB 的单个文件。它将 512 MB 的数据写入一个文件,然后创建另一个文件并将其余数据写入另一个文件。如何将所有数据写入单个文件?

【问题讨论】:

【参考方案1】:

尝试在执行查询的同一会话中设置拼花大小

 set PARQUET_FILE_SIZE=1g;
 INSERT INTO TABLE parquet_test.parquetTable ...

【讨论】:

以上是关于插入 Parquet 文件会生成 512 MB 文件。如何生成 1 GB 的文件?的主要内容,如果未能解决你的问题,请参考以下文章

spark剖析:spark读取parquet文件会有多少个task

spark剖析:spark读取parquet文件会有多少个task

spark剖析:spark读取parquet文件会有多少个task

spark剖析:spark读取parquet文件会有多少个task

spark剖析:spark读取parquet文件会有多少个task

加载到 Hive 分区 Parquet 表时内存不足