Расчет общей стоимости на одного клиента из большого файла данных - PullRequest
0 голосов
/ 04 мая 2019

У меня есть задача, где я должен прочитать большой файл и обработать данные внутри. Каждая строка в файле выглядит так:

CustomerId   ItemId  Amount   Price

Затем мне нужно рассчитать общую стоимость для покупателя, но сначала мне нужно определить самый дорогой приобретенный предмет. Затем я должен вычесть самый дорогой предмет из общей стоимости.

Сначала я могу составить эту таблицу:

CustomerId  ItemId Total_Cost

Затем я сортирую таблицу, нахожу наибольшую стоимость и сохраняю ее в переменной.

Тогда я могу сделать эту таблицу:

CustomerId  Total_Cost

Тогда я вычту наибольшую стоимость из каждого ряда.

Я чувствую, что это подход грубой силы, и мне было интересно, есть ли более умный и эффективный способ сделать это. Кроме того, мне нужен совет, какую библиотеку использовать. Я не понимаю, какой из них лучше всего подходит для этой проблемы: Spark, Storm, Flume или Akka-Stream.

1 Ответ

0 голосов
/ 06 мая 2019

Вы можете сделать это быстрее, отслеживая самый дорогой предмет, купленный каждым клиентом.

Позволяет предположить, что ваши данные:

4, 34, 2, 500 4, 21,1, 700 4, 63, 5, 300

В первой строке клиент 4 покупает 2 товара по 500. Вы еще не добавляете это к общей стоимости, поскольку на данный момент эта покупка является самой дорогой.Когда появляется строка 2, вы сравниваете эту покупку со своей самой дорогой, если не только заменяете самую дорогую, но и добавляете предыдущую самую дорогую к общей стоимости.Если меньше, добавьте к общей стоимости.

...