【发布时间】:2016-03-02 16:47:15
【问题描述】:
我想过滤数据集A的飞行延迟时间小于某些特定值(x)的记录。
但是我会从另一个 pig 查询中得到 x 的值,它是一个元组,因为 x 是一个元组。
但是使用下面的语句会报错:
B = FILTER A by flight_delay_time < x;
dump B;
文件A中的数据如下;
ravi,savings,avinash,2,char,33,F,22,44,12,13,33,44,22,11,10,22,26 avinash,current,sandeep,3,char,44,M,33,11,10,12,33,22,39,12,23,19,35 supreeth,储蓄,prabhash,4,char,55,F,22,12,23,12,44,56,7,88,34,23,68 lavi,current,nirmesh,5,char,33,M,11,10,33,34,56,78,54,23,445,66,77 Venkat,savings,bunny,6,char,11,F,99,12,34,55,33,23,45,66,23,23,28
存储为元组的 x = (40) 的值。
上述数据的最后一列表示flight_delay_time。
我正在通过以下方式提取 X 的值。
以下是存储在 C_CONTROL_BATCH.txt 中的数据
25 35 40 15
我使用下面的代码来提取 X 的值。
control_batch = LOAD 'C_CONTROL_BATCH.txt' AS (start:int);
variable = ORDER control_batch BY start DESC;
X = LIMIT starttime 1;
【问题讨论】:
-
x 会有 1 个值吗?你试过 FLATTEN(x);
-
是的 x 将只有价值,我已经尝试过 FLATTEN(x) 但除了使用过滤器之外,它没有任何其他方式来过滤这些记录?
-
您可以发布示例数据吗?
-
是的.....我现在已经在问题中更新了它。
-
请检查由x表示的关系是否包含关系B中的值即40。可能会发生关系B无法获取x的值
标签: hadoop mapreduce hive apache-pig hdfs