我有一个数据如下:
(000001, mfp=621|mdus=4.0|mduc=5.0|mas=1|mpc=4.0|mfn=1|country=ABC)
(00002, address=1000+mity|mus=1|name=kailtig+bksyt|mas=1|mpc=4.977552|country=ABC)
Run Code Online (Sandbox Code Playgroud)
这些字段是标识符和属性集。
我正在尝试填充数据中的所有属性并对它们进行一些操作。
因此,我准备了如下脚本:
A = load 'myData.txt' using PigStorage(',') as (ID, ATTRIBUTES);
B = foreach A generate FLATTEN(STRSPLIT(ATTRIBUTES, '\\|')) ;
C = foreach B generate FLATTEN(TOBAG(*));
Dump C;
()
( mfp=621)
(mdus=4.0)
(mduc=5.0)
(mas=1)
(mpc=4.0)
(mfn=1)
(country=ABC))
( address=1000+mity)
(mus=1)
(name=kailtig+bksyt)
(mpc=4.977552)
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切正常。但是,问题就从这里开始。
当我尝试对这些属性进行一些操作时,例如将“m”替换为“market”
D = foreach C generate REPLACE($0,'m','market');
Run Code Online (Sandbox Code Playgroud)
给我一个错误如下:
Could not infer the matching function for org.apache.pig.builtin.REPLACE as
multiple or none of them fit. Please use an explicit cast.
Run Code Online (Sandbox Code Playgroud)
当我尝试将 bytearray 转换为 chararray …
apache-pig ×1