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

Pig执行LOAD语句报mismatched input '-' expecting RIGHT_PAREN错误求助

报错原因分析

Apache Pig的语法明确规定:用户自定义的标识符(包含列名、变量名、别名等)只能由大小写字母、数字、下划线组成,不支持直接使用连字符-作为标识符的组成部分。解析器读取到Book-Title里的-时,会将其识别为减法运算符,而非列名的一部分,因此触发语法解析错误,和报错提示「mismatched input '-' expecting RIGHT_PAREN」完全匹配。

可行解决方案
  • 方案1:将列名中的连字符替换为下划线(最推荐,符合Pig社区通用命名规范,后续不需要额外转义处理)
    修改后的代码如下:
book = LOAD '/user/samanthafox/books.csv' USING PigStorage(',') AS (
    ISBN:chararray, 
    book_title:chararray,
    book_author:chararray,
    year_of_publication:chararray,
    publisher:chararray
);
DUMP book;
  • 方案2:如果必须保留带连字符的命名形式,可以用反引号包裹包含特殊字符的列名做转义处理
    修改后的代码如下:
book = LOAD '/user/samanthafox/books.csv' USING PigStorage(',') AS (
    ISBN:chararray, 
    `Book-Title`:chararray,
    `Book-Author`:chararray,
    `Year-Of-Publication`:chararray,
    Publisher:chararray
);
DUMP book;

注意后续如果要引用这些带连字符的列,也必须全程用反引号包裹,否则仍会触发语法错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:24:01