我有一个配置单元表(带压缩),其定义如下
create table temp1 (col1 string, col2 int)
partitioned by (col3 string, col4 string)
row format delimited
fields terminated by ','
escaped by '\\'
lines terminated by '\n'
stored as sequencefile;
当我从另一个配置单元表执行简单的选择和插入(没有运行减速器)到这个表时,我看到了一个独特的模式,这个表中的压缩数据被分割成非常小的文件(表 1:有时 1gb数据被拆分为 200-300 个文件,因此增加了消耗的块数,尽管它应该只跨越 16 个块),因为当我查询这个新表时形成的地图数量非常多。文件大小不超过 245mb(表 2)。是否有设置将其限制为 64mb(或 64mb 的倍数或仅单个文件),因为我的块大小为 64mb,因此不会创建多余的块。
表格1
姓名 | 类型 | 尺寸 | 块大小
000000_0 | 文件 | 30.22MB | 64 MB
000001_0 | 文件 | 26.19MB | 64 MB
000002_0 | 文件 | 25.19MB | 64 MB
000003_0 | 文件 | 24.74MB | 64 MB
000004_0 | 文件 | 24.54MB | 64 MB
…………
000031_0 | 文件 | 0.9MB | 64 MB
表 2
姓名 | 类型 | 尺寸 | 块大小
000000_0 | 文件 | 245.02MB | 64 MB
000001_0 | 文件 | 245.01MB | 64 MB
000002_0 | 文件 | 244.53MB | 64 MB
000003_0 | 文件 | 244.4MB | 64 MB
000004_0 | 文件 | 198.21MB | 64 MB