代码之家  ›  专栏  ›  技术社区  ›  CrazySynthax

Pig脚本错误:java.lang.Long无法转换为java.lang.Integer

  •  0
  • CrazySynthax  · 技术社区  · 4 年前

    我为Pig运行了以下代码片段:

    publisher_hour_listings_cdf = foreach rscf_pub_hours_cumsum_proj generate
                rscf_publisher_id,
                rscf_is_uw,
                rscf_hour,
                (int)rscf_hour as rscf_hour_int,
                rscf_cum_listings,
                total_daily_listings,
                (rscf_cum_listings*1.0)/(total_daily_listings*1.0) as cdf,
                '$handledDate$';
    

    我得到一个错误:

    2020-05-02 04:31:53130信息-[步骤]-线程74038- /opt/pig/pig-0.17.0/bin/pig:[main]错误 org.apache.pig.tools.pigstat。PigStats-错误0: org.apache.pig.backend.execution引擎。ExecException:错误0: 执行时发生异常(名称:publisher_hour_listings_cdf:新For 每一个(假,假,假的,假的,假,假、假、假)[袋子]-范围-203 操作员密钥:范围-203): org.apache.pig.backend.execution引擎。ExecException:错误0: 执行[PCast(名称:Cast[long]-scope-171)时发生异常 操作员密钥:scope-171)儿童:[[POP项目(名称:项目[int][3] -范围-170运算符键:范围-170)子项:在[]]]处[rscf_cum_listings[-1,-1]]]为null:java.lang.ClassCastException: java.lang.Long不能转换为java.lang.Integer

    我们认为Pig未能将Long转换为Integer。 我们尝试使用“biginteger”而不是“int”进行强制转换:

            (biginteger)rscf_hour as rscf_hour_int
    

    脚本也失败了,并显示了完全相同的错误消息。

    我们还试图完全删除int强制转换:

        rscf_hour as rscf_hour_int
    

    我们仍然得到了同样的错误。

    你知道为什么吗?

    0 回复  |  直到 4 年前