我为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
我们仍然得到了同样的错误。
你知道为什么吗?