Apache pig 无法将展平(TOBAG(*)投射到chararray

Apache pig 无法将展平(TOBAG(*)投射到chararray,apache-pig,Apache Pig,当我试图将以下数据拆分为两个分隔符(即|和:)时,我面临一个问题: 数据: 猪字: 错误: 问题在于-STRSPLITvalue…,它需要一个字符,但得到一个空类型 请给出解决此问题的建议或替代方法。在第一个STRSPLIT中,您不能使用像bcoz这样的“\\\”,它在正则表达式中的特殊字符,您需要使用像“\\\\\”这样的双反斜杠进行转义,在第二个STRSPLIT中,我猜值小于schema,这就是您出现强制转换错误的原因。你能告诉我你在这个剧本中到底在尝试什么吗?请为上述输入粘贴预期输出?感谢

当我试图将以下数据拆分为两个分隔符(即|和:)时,我面临一个问题:

数据:

猪字:

错误:

问题在于-STRSPLITvalue…,它需要一个字符,但得到一个空类型


请给出解决此问题的建议或替代方法。

在第一个STRSPLIT中,您不能使用像bcoz这样的“\\\”,它在正则表达式中的特殊字符,您需要使用像“\\\\\”这样的双反斜杠进行转义,在第二个STRSPLIT中,我猜值小于schema,这就是您出现强制转换错误的原因。你能告诉我你在这个剧本中到底在尝试什么吗?请为上述输入粘贴预期输出?感谢您的回复,预期输出为-1 c1 11 1 c1 33 1 c2 12等
1   | c1:11:33 | c2:12

234 | c1:21    | c2:22

33  | c1:31    | c2:32

345 | c1:41    | c2:42
inpt = load '/home/hduser/test1' as (line:chararray);

splt = foreach inpt generate FLATTEN(STRSPLIT($0, '\\|')) ;

id_vals = foreach splt generate $0 as id, FLATTEN(TOBAG(*)) as value;

id_vals3 = foreach id_vals generate id, INDEXOF(value,':') as p, (tuple(chararray,int))STRSPLIT(value,':',2) as vals; 
2015-03-26 18:54:45,724 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1045:

<line 4, column 87> Could not infer the matching function for org.apache.pig.builtin.STRSPLIT as multiple or none of them fit. Please use an explicit cast.