Hadoop 如果列的值是列表的一部分,则使用Pig脚本提取行

Hadoop 如果列的值是列表的一部分,则使用Pig脚本提取行,hadoop,apache-pig,Hadoop,Apache Pig,我有一个像这样的猪脚本 a = load 'large_file' using PigStorage(',') b = filter a by $16 = '12345678' c = filter a by $16 = '456' d = union b,c store d into 'output.csv' 如果我想通过值列表筛选a。例如,当第16列的值位于大型值列表中时,我希望提取所有行 用熊猫的话来说就是 df[df['col'].isin([one massive list])]

我有一个像这样的猪脚本

a = load 'large_file' using PigStorage(',')
b = filter a by $16 = '12345678'
c = filter a by $16 = '456'
d = union b,c 
store d into 'output.csv' 
如果我想通过值列表筛选a。例如,当第16列的值位于大型值列表中时,我希望提取所有行

用熊猫的话来说就是

df[df['col'].isin([one massive list])] 

我正在使用pig版本0.8

对于pig-0.8,请在过滤器中使用多个

b = filter a by $16 == '12345678' OR $16 == '456' OR $16 == 'anotherval';
从Pig-0.12.0开始,您可以在操作符中使用

b = filter a by $16 IN ('12345678', '456', ... );

@franklinsijio是否存在我可以从文件或其他文件读取列表的情况?@aceminer如果列表在文件中,则更简单的方法是使用@franklinsjio。似乎复制联接仅适用于小文件?我假设包含列表的文件将比实际数据文件小,在这种情况下,复制联接的性能更好,否则你可以用join来完成。无论哪种方式,join都将是解决方案。