我的任务是读取大文件并处理其中的数据。文件中的每一行看起来都像这样:
CustomerId ItemId Amount Price
然后,我需要为客户计算总成本,但是首先,我需要计算出购买的最昂贵的商品。然后,我必须从总成本中减去最昂贵的物品。
我的想法是首先可以制作这张桌子:
CustomerId ItemId Total_Cost
然后我对表格进行排序,找出成本最高的商品并将其存储在变量中。
然后我可以制作这张桌子:
CustomerId Total_Cost
然后,我将从每一行中扣除最高的费用。
我觉得这是蛮力的方法,我想知道是否有更聪明,更有效的方法来做到这一点。另外,我需要有关使用哪个库的建议。对于哪个问题最适合这个问题,我感到困惑:Spark,Storm,Flume或Akka-Stream。
答案 0 :(得分:0)
通过跟踪每个客户购买的最昂贵的商品,您可以更快地做到这一点。
假设您的数据是:
4,34,2,500 4,21,1,700 4,63,5,300
在第一行上,客户4购买2件商品,共500件。您尚未将其添加到总费用中,因为在这一点上,这笔购买是最昂贵的。 当第2行出现时,您可以将此购买交易与最昂贵的购买交易进行比较(如果可以取代最昂贵的购买交易,然后将之前最昂贵的交易加到总成本中)。如果少于,则增加总费用。