gpt4 book ai didi

hadoop - 在Pig Latin中无法使用FOREACH读取变体

转载 作者:行者123 更新时间:2023-12-02 20:36:34 27 4
gpt4 key购买 nike

我在以下 pig 代码方面遇到麻烦。

我需要通过FOREACH读取的prevarus变量具有以下DESCRIBE:

UnionD1D2_Distinct: {UnionD1D2_Foreach1::null::display_site: chararray,UnionD1D2_Foreach1::efectivos_click: long,UnionD1D2_Foreach2::null::display_site: chararray,UnionD1D2_Foreach2::total_click: long}



这里是示例数据:

(linuxlife.example.com,113,linuxlife.example.com,5343) (mobilesource.example.com,211,mobilesource.example.com,8120) (siliconshore.example.com,170,siliconshore.example.com,7764) (printoperator.example.com,62,printoperator.example.com,2724)



因此,FOREACH读取的数据是:
UnionD1D2_Calc = FOREACH UnionD1D2_Distinct
GENERATE
(UnionD1D2_Distinct.UnionD1D2_Foreach1::efectivos_click1/UnionD1D2_Distinct.UnionD1D2_Foreach2::total_click2)*100 AS ctr;

但是,我总是得到以下信息:

ERROR 1066: Unable to open iterator for alias UnionD1D2_Calc. Backend error : Scalar has more than one row in the output. 1st : (filmport.example.com,121,filmport.example.com,5395), 2nd :(firesale.example.com,129,firesale.example.com,5452)



我究竟做错了什么?

请,

问候!

最佳答案

在别名上使用FOREACH时,无需再次使用别名来引用变量。例如,可以使用UnionD1D2_Distinct.UnionD1D2_Foreach1::efectivos_click1代替UnionD1D2_Foreach1::efectivos_click1

请尝试:

UnionD1D2_Calc = FOREACH UnionD1D2_Distinct GENERATE
(UnionD1D2_Foreach1::efectivos_click1/UnionD1D2_Foreach2::total_click2)*100 AS ctr;

并让我们知道您是否遇到相同的错误。

关于hadoop - 在Pig Latin中无法使用FOREACH读取变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50959757/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com