【发布时间】:2015-06-01 04:22:53
【问题描述】:
我有一个如下所示的数据集:
---------------------------
cust | cost | cat | name
---------------------------
1 | 2.5 | apple | pkLady
---------------------------
1 | 3.5 | apple | greenGr
---------------------------
1 | 1.2 | pear | yelloPear
----------------------------
1 | 4.5 | pear | greenPear
-------------------------------
我的蜂巢查询现在应该比较客户购买的每件商品的最便宜价格。所以我现在想把 2.5 和 1.2 排成一排来得到它的区别。由于我是 Hive 的新手,我现在不会忽略其他所有内容,直到我到达下一个类别的项目,同时我仍然保持上一个类别中最便宜的价格。
【问题讨论】:
-
你能否提供一个预期输出的例子,具体来说,你的意思是“如何在我到达下一个项目类别之前忽略其他所有内容,同时我仍然保持上一个类别中最便宜的价格”?
-
在我阅读了第一行并记住了 2.5 之后,我想遍历这些行直到我找到下一个类别 pear 在这种情况下为 pear 并比较价格,然后从 pear 中记住 1.2 并再次遍历直到我找到下一项并做同样的事情。
-
那么您想为每个客户添加一个
min(cost)列吗?cat列不相关,对吧? -
接受的答案在技术上是正确的,但在给出替代方案时效率非常低。