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

创建带分区的Hive表时遇Presto SQL报错:mismatched input 'PARTITIONED'

解决Presto创建Hive分区表的语法错误

你遇到的错误是因为Presto的CREATE TABLE语法与Hive原生语法存在差异,PARTITIONED BY子句不能直接放在表字段定义之后,必须通过WITH子句指定分区配置。

以下是正确的两种写法:

写法一:通过WITH子句指定分区列(无需提前定义分区列)

CREATE TABLE IF NOT EXISTS schema.table_name (
    ID   varchar(20),
    name varchar(50)
) WITH (
    partitioned_by = ARRAY['part_dt', 'system']
);

注:分区列的数据类型会默认设为VARCHAR,如果需要指定特定类型,需先在表字段中定义分区列。

写法二:先定义分区列,再通过WITH声明分区

CREATE TABLE IF NOT EXISTS schema.table_name (
    ID   varchar(20),
    name varchar(50),
    part_dt varchar(8),
    system varchar(5)
) WITH (
    partitioned_by = ARRAY['part_dt', 'system']
);

关键说明:Presto对Hive表的DDL做了适配,不支持Hive原生的PARTITIONED BY (列名 数据类型)写法,必须通过WITH (partitioned_by = ARRAY['列名1', '列名2'])的形式声明分区。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:15:53