我的任务是读取一个大文件并处理其中的数据。文件中的每一行都是这样的:
CustomerId ItemId Amount Price
然后我需要计算一个客户的总成本,但首先我需要计算出购买的最昂贵的商品。然后我不得不从总成本中减去最贵的项目。
我的想法是首先我可以做这张table:
CustomerId ItemId Total_Cost
然后我对表进行排序,找到最高成本并将其存储在一个变量中。
然后我可以做这张table:
CustomerId Total_Cost
然后我将从每行中减去最高成本。
我觉得这是一个暴力的方法,我想知道是否有一个更聪明和更有效的方法来做到这一点。另外,我需要关于使用哪个图书馆的建议。我不知道哪一个最适合这个问题:Spark,风暴,Flume,或阿克卡流。
1条答案
按热度按时间jjhzyzn01#
通过跟踪每个客户购买的最贵商品,您可以更快地做到这一点。
假设您的数据是:
4, 34, 2, 500 4, 21, 1, 700 4, 63, 5, 300
在第一行,顾客4购买了2件500件的商品。您还没有将此添加到总成本中,因为此时此购买是最昂贵的。当第2行出现时,您将此购买与最贵的进行比较,如果超过替换最贵的,则将以前的最贵添加到totalcost中。如果更少,则添加到总成本中。