hive 报错NoViableAltException

hive 报错NoViableAltException

报错内容

报错图片

NoViableAltException(-1@[123:1: selectItem : ( ( tableAllColumns )=> tableAllColumns -> ^( TOK_SELEXPR tableAllColumns ) | ( expression ( ( ( KW_AS )? identifier ) | ( KW_AS LPAREN identifier ( COMMA identifier )* RPAREN ) )? ) -> ^( TOK_SELEXPR expression ( identifier )* ) );])
        at org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser$DFA17.specialStateTransition(HiveParser_SelectClauseParser.java:5389)
        at org.antlr.runtime.DFA.predict(DFA.java:80)
        at org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser.selectItem(HiveParser_SelectClauseParser.java:2247)
        at org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser.selectList(HiveParser_SelectClauseParser.java:1168)
        at org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser.selectClause(HiveParser_SelectClauseParser.java:942)

报错排查

insert overwrite table cl_ads.ads_finance_invoicing_mi
partition(ptt_mon,pf)
SELECT account parent_account, -- 母账号
 (balance - recharge_money + charge) beginning_money, -- 期初金额 
recharge_money, -- 本期充值金额, 判断销账类型,如果是月结,不减;其他的销账减 期初=期末-本期充值+本期消耗
shibai_huankuan fail_remission_money,
${ptt_mon} ptt_mon,
           'ws' pf
FROM
   cl_ods.ods_ws_t_record_detail_daily_di
      WHERE ptt_mon = '${ptt_mon}'
     ;

排查错误: 其中注释中包含了 ‘;’ , 造成报错

报错解决

解决方案: 删除注释中的 ’ ;’

参考资料

  • 解决了问题的资料(注释中’;'作为终止符,产生错误,)

https://www.cnblogs.com/barneywill/p/11272426.html
https://blog.csdn.net/qq_26645205/article/details/78352882

  • 关键字冲突(本例中无效)

https://blog.csdn.net/qq595662096/article/details/100150850

  • 指定子查询的表名(本例中无效)

https://blog.csdn.net/Maricle_Again/article/details/100364188

猜你喜欢

转载自blog.csdn.net/dbc_zt/article/details/108755102