如您所见,我们可以将滤波器应用于第一个,因为我们可以在温度上使用聚合。现在我们如何在STRINGS上应用第二个过滤器?
我们只是试图在条件清晰且部分混浊的情况下过滤e。
{day: (year: int,month: int, day: int), temperature {(temp: int)},
condition: {cond: bytearray)}, dewPoint: {(dewpoint: double)} windSpeed:
{(wind: double)}}
架构:
{{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');