PIG - 过滤器或如何进入袋子或元组的侧面

时间:2016-04-27 23:29:33

标签: hadoop apache-pig

如您所见,我们可以将滤波器应用于第一个,因为我们可以在温度上使用聚合。现在我们如何在STRINGS上应用第二个过滤器?

我们只是试图在条件清晰且部分混浊的情况下过滤e。

   {day: (year: int,month: int, day: int), temperature {(temp: int)},                   

   condition: {cond: bytearray)}, dewPoint: {(dewpoint: double)} windSpeed:

   {(wind: double)}}

架构:

{{1}}

1 个答案:

答案 0 :(得分:3)

你必须在下面的语句中将cond强制转换为chararray。因为你没有在load语句中指定数据类型,所有字段都将作为bytearray加载。这是PigStorage选择的默认数据类型。

00-pyspark-setup.py

修改

我能够通过使用BagToString函数获得结果。您可以在1步骤中进行过滤。

A = FOREACH Weather GENERATE (int)$0 AS year, (int)$1 AS month, (int)$2 AS day, (int)$4 AS temp, (chararray)$14 AS cond, (double)$5 as dewpoint , (double)$10 as wind;

或者在你的情况下

D = FILTER C BY (MIN(temperature) >= 60 AND MAX(temperature) <= 79) AND (BagToString(condition) == 'clear' OR BagToString(condition) == 'partly cloudy');

enter image description here