You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache Drill中将.json数据集转换为无分区的.parquet文件

解决Drill生成无分区Parquet文件的问题

我之前也碰到过类似的情况——Drill默认会针对大数据量输出分区Parquet文件来优化性能,但如果我们需要无分区的单文件输出,只需要补充一个关键参数设置并确保查询逻辑不带分区即可:

具体操作步骤

  • 先执行你已经完成的基础配置(切换存储并设置输出格式):
    0: jdbc:drill:zk=local> use dfs.tmp;
    0: jdbc:drill:zk=local> ALTER SESSION SET `store.format` = 'parquet';
    
  • 新增会话参数,强制Drill输出单个文件:
    0: jdbc:drill:zk=local> ALTER SESSION SET `store.parquet.single_file_output` = true;
    
  • 执行你的CTAS(Create Table As Select)语句,注意不要添加PARTITION BY子句,示例如下:
    0: jdbc:drill:zk=local> CREATE TABLE dfs.tmp.business_single AS SELECT * FROM dfs.tmp.business.json;
    

结果验证

执行完成后,前往dfs.tmp对应的文件系统目录查看,你会看到生成了单个.parquet文件,而非带有分区子目录的结构。这个参数会强制Drill将所有输出合并到一个文件中,完全满足无分区转换的需求(如果数据量极大,单文件可能会带来读取性能问题,但完全匹配你的当前需求)。

内容的提问来源于stack exchange,提问作者Jerry George

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:51:06