Hive 通过OOZIE的配置单元操作中的参数类型不匹配

Hive 通过OOZIE的配置单元操作中的参数类型不匹配,hive,oozie,Hive,Oozie,我正在oozie中运行配置单元操作,其中hive.sql脚本具有下面提到的配置单元查询 议程: 目标是将此查询的结果插入到hive integrated hbase表中,其中主要目标是通过transaction_dt列检索最新的时间戳 但是,当我在OOZIE中通过配置单元操作运行相同的查询时,它会失败 错误消息: org.apache.hadoop.hive.ql.parse.SemanticException:第0行:-1个参数 类型不匹配“行”:EQUAL的第一个参数应为 基元类型,但找到了

我正在oozie中运行配置单元操作,其中hive.sql脚本具有下面提到的配置单元查询

议程:

  • 目标是将此查询的结果插入到hive integrated hbase表中,其中主要目标是通过transaction_dt列检索最新的时间戳

  • 但是,当我在OOZIE中通过配置单元操作运行相同的查询时,它会失败

  • 错误消息:

    org.apache.hadoop.hive.ql.parse.SemanticException:第0行:-1个参数 类型不匹配“行”:EQUAL的第一个参数应为 基元类型,但找到了列表

  • 这里似乎不需要UDF定义的变量,但需要基元类型

    当我在HiveShell上手动运行此查询时,它工作得非常好


  • 当它与hive shell一起工作时,需要知道我可以做哪些更改以使其与oozie一起工作。

    我不确定这是否是异常的原因,但显然,不带ON条件的连接是一件坏事,因为它是交叉连接。第一次连接的条件似乎不是它应该在的位置。应该是这样的,不是吗

    FROM hive_cardtrans_hbase ct 
             join cid_ucl_lookup c_u_look on c_u_look.card_id=ct.card_id
             join member_score   ms       on ms.member_id=ct.member_id
    
    不是这个:

    FROM hive_cardtrans_hbase ct 
             join cid_ucl_lookup c_u_look 
             join member_score   ms on c_u_look.card_id=ct.card_id and ms.member_id=ct.member_id
    

    我不确定这是否是异常的原因,但显然,没有ON条件的连接是一件坏事,因为它是交叉连接。第一次连接的条件似乎不是它应该在的位置。应该是这样的,不是吗

    FROM hive_cardtrans_hbase ct 
             join cid_ucl_lookup c_u_look on c_u_look.card_id=ct.card_id
             join member_score   ms       on ms.member_id=ct.member_id
    
    不是这个:

    FROM hive_cardtrans_hbase ct 
             join cid_ucl_lookup c_u_look 
             join member_score   ms on c_u_look.card_id=ct.card_id and ms.member_id=ct.member_id
    

    通过在配置单元脚本中设置set-hive.auto.convert.join=false,问题得到了解决。
    这基本上禁用了OOZIE所做的优化,我想,这个选项在默认情况下是禁用的。

    通过在配置单元脚本中设置set-hive.auto.convert.join=false,问题得到了解决。
    这基本上禁用了OOZIE所做的优化,我想,这个选项在默认情况下是禁用的。

    胡乱猜测:尝试用
    row_num
    row_num重命名
    alias正好是别名,我试着将它重命名为r,但是也没有得到row_num,不过没办法。测试了它,发现如果我不在oozie中使用join,问题就消失了,但是它在带有join的hive shell中正常工作,所以不知道需要做哪些更改才能使它与oozie一起工作。顺便说一句,在这个join中:join cid_ucl_lookup c__look ON条件不在其位置。检查解释计划,这是交叉连接最有可能的wild猜测:尝试重命名
    别名与
    行数
    行数正好是别名,我尝试将其重命名为仅仅是r,但是没有gotried行数,但是没有go。测试发现,如果我不在oozie中使用join,问题消失,但是,它在具有联接的配置单元外壳中正常工作,因此不知道需要做哪些更改才能使它在该联接中与oozie.BTW一起工作:join cid_ucl_lookup c__look ON条件不在其位置。检查解释计划,它很可能是交叉连接。没有尝试过此更改,但是没有尝试,我的查询在hive shell中工作,但是在OOZIE中失败。没有尝试过此更改,但是没有尝试,我的查询在hive shell中工作,但是在OOZIE中失败。