无法将猪元组传递给python UDF

阿米特

我有具有10K记录的master.txt,因此它的每一行都是一个元组,并且需要将相同的全部传递给python UDF。由于它具有多个记录,因此在存储p2preportmap时会出现以下错误。请帮忙

错误如下:

无法打开别名p2preportmap的迭代器。后端错误:org.apache.pig.backend.executionengine.ExecException:错误0:标量在输出中有多个行。第一个:(010301,MTS,MM),第二个:(010B06,MTS,TN)(常见原因:“ JOIN”然后“ FOREACH ... GENERATE foo.bar”应为“ foo :: bar”)

Pig脚本如下:

REGISTER 'smsiuc_udf.py' using streaming_python as smsiuc_udfs;
cdrs = load '2016040111*' USING PigStorage('|','-tagFile') ;

mastergtrec = load 'master.txt' USING PigStorage(',','-tagFile');

mastergt = FOREACH mastergtrec GENERATE (chararray) UPPER($1) as opcdpc, (chararray) UPPER($2) as gtoptname,(chararray) UPPER($3) as gtoptcircle;

mastergttup = FOREACH mastergt generate TOTUPLE(opcdpc,gtoptname,gtoptcircle) as mstgttup;

cdrrecord = FOREACH cdrs GENERATE (chararray) UPPER($1) as aparty, (chararray) UPPER($2) as bparty,$3 as smssentdate,$4 as smssenttime,($29=='6' ? 'S' : 'F') as status,(chararray) UPPER($26) as srcgt,(chararray) UPPER($27) as destgt,($12=='405899136999995' ? 'MTSDEL-CDMA' : ($12=='919875089998' ? 'MTSRAJ-GSM' : ($12=='405899150999995' ? 'MTSCHN-CDMA' : $12) ) ) as smscgt, (chararray)$0 as cdrfname,(chararray) $13 as prepost;

filteredp2pcdrs = FILTER cdrrecord by smsiuc_udfs.pullp2pcdrs(aparty,bparty,srcgt,destgt) and status == 'S' and SUBSTRING(smssentdate,4,6) == '$MON';

groupp2pcdrs = GROUP filteredp2pcdrs by (srcgt,destgt,aparty,bparty,smscgt,status,prepost);

distinctp2pcdrs= FOREACH groupp2pcdrs {
uniq = DISTINCT filteredp2pcdrs.(srcgt,destgt,aparty,bparty,smscgt,status,prepost);
GENERATE FLATTEN(group),COUNT(uniq) as cnt;
};

p2preportmap = FOREACH distinctp2pcdrs GENERATE smsiuc_udfs.p2preport(srcgt,destgt,aparty,bparty,mastergttup ),smscgt,status,prepost,cnt
维卡斯·马杜苏达娜(Vikas Madhusudana)

这可以通过添加虚拟列然后分组来完成。

dummmy = foreach p2preportmap生成1,$ 0,$ 1 ....

分组=组虚拟$ 0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以将标量参数传递给Python UDF?

来自分类Dev

如何将常量值传递给Python UDF?

来自分类Dev

使用Colum将列表传递给UDF

来自分类Dev

将参数传递给 Scala udf

来自分类Dev

将参数传递给 pig udf 无法使用参数实例化

来自分类Dev

是否可以将参数的值传递给UDF构造函数?

来自分类Dev

将多个参数传递给Pig过滤器UDF

来自分类Dev

将查询作为参数传递给udf函数

来自分类Dev

无法删除 UDF

来自分类Dev

在SQL UDF中传递格式

来自分类Dev

猪通过关系作为UDF的参数

来自分类Dev

无法捕获Pyspark UDF异常

来自分类Dev

Pig UDF无法过滤单词

来自分类Dev

无法将UDF用作MariaDB中的约束

来自分类Dev

Redshift Python UDF Varchar限制

来自分类Dev

Apache Spark Python UDF 失败

来自分类Dev

如何在Spark SQL中将额外的参数传递给UDF?

来自分类Dev

Pig Java UDF:从元组生成包

来自分类Dev

在withColumn下将数据框列和外部列表传递给udf

来自分类Dev

如何将Array [Seq [String]]传递给Apache Spark UDF?(错误:不适用)

来自分类Dev

将整个行作为附加参数传递给PySpark中的UDF

来自分类Dev

将日期数组传递给给出错误13的UDF

来自分类Dev

将值传递给UDF时xlwings计算不正确

来自分类Dev

火花。将 Dataframe 传递给 pandas_udf 并返回一个系列

来自分类Dev

Pyspark:在 UDF 中传递动态列

来自分类Dev

无法从Pig解析Java UDF中的方法

来自分类常见问题

将列和映射传递到Scala UDF

来自分类Dev

将列和映射传递到Scala UDF

来自分类Dev

Excel UDF 将评估的 SUB 值加倍