gpt4 book ai didi

hadoop - 通过连接两列在 pig 中过滤

转载 作者:可可西里 更新时间:2023-11-01 14:53:45 25 4
gpt4 key购买 nike

我有两个表格,格式如下

表 1:com_Data

#cc bb mm#

41 22 2563

42 24 3562

表 2:

#姓名cid#

萨西 41-22-2563

索曼 42-47-2562

我想比较表 1 中的三列 cc bb mm,并且需要过滤掉表 2 中与组合值匹配的所有列

如何在pig中过滤

当尝试使用 pig 连接由“-”分隔的三列时导致错误下面是我使用的代码

a = LOAD 'default.com_data' USING org.apache.hcatalog.pig.HCatLoader();
b = foreach a generate concat(cc,'-',bb,'-',mm);

如何过滤表格?

最佳答案

看起来cc、bb和mm的数据类型都是数字。您能否将数据类型更改为 charrarray 或 bytearray,以便 concat 可以工作。请看下面的例子

input.txt
41 22 2563
42 24 3562
43 46 1234

input1.txt
sasi 41-22-2563
soman 42-47-2562
test 43-46-1234

PigScript:
A = LOAD 'input.txt' USING PigStorage(' ') AS (cc:chararray,bb:chararray,mm:chararray);
AA = LOAD 'input1.txt' USING PigStorage(' ') AS (name:chararray,cid:chararray);
B = FOREACH A GENERATE CONCAT(cc,'-',bb,'-',mm) as newCid;
C = JOIN AA BY cid,B BY newCid;
D = FOREACH C GENERATE $0,$1;
DUMP D;

Output:
(sasi,41-22-2563)
(test,43-46-1234)

关于hadoop - 通过连接两列在 pig 中过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26293523/

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