Apache pig 加入猪与模式匹配

Apache pig 加入猪与模式匹配,apache-pig,Apache Pig,我有两个文件file1和file2 文件1的内容包括: aa bb 抄送 文件2的内容包括: aab f2 f3 zzx f2 f3 英国广播公司F2F3 我想使用Pig连接file1(在字段1上)和file2(在字段1上),其中输出为: aa aab f2 f3 bb英国广播公司f2 f3 基本上,匹配必须类似于aa*、bb*、cc*等 有什么办法吗?最简单的解决方案是使用交叉运算符,后跟过滤器 input1 = LOAD 'file1' AS (f1:chararray, f2, f3);

我有两个文件file1和file2

文件1的内容包括: aa bb 抄送

文件2的内容包括: aab f2 f3 zzx f2 f3 英国广播公司F2F3

我想使用Pig连接file1(在字段1上)和file2(在字段1上),其中输出为: aa aab f2 f3 bb英国广播公司f2 f3

基本上,匹配必须类似于aa*、bb*、cc*等


有什么办法吗?

最简单的解决方案是使用
交叉
运算符,后跟
过滤器

input1 = LOAD 'file1' AS (f1:chararray, f2, f3);
input2 = LOAD 'file2' AS (f1:chararray, f2, f3);

crossed = CROSS input1, input2;
filtered = FILTER crossed BY INDEXOF(input2::f1, input1::f1) == 0;
INDEXOF
是一个内置的UDF,它搜索第一个字符串中的第二个字符串,并返回第一个出现的索引,如果没有出现,则返回-1。因为您希望第二个字符串以第一个字符串开头,所以您正在寻找索引0

请参阅优秀书籍《编程猪》一章的“横截面”。特别注意有关生成大量数据的
交叉
的警告。如果您有大量输入,您可能希望制定一种特定于应用程序的构造联接键的方法,以便不需要模糊匹配