У меня есть набор данных транзакций, где каждая транзакция представляет собой покупку одного предмета. Таким образом, каждый заказ записывается как 3 транзакции, если в заказе было 3 товара.
Пример набора данных:
User Order, ItemCount, ItemPrice
1 1 1 10
1 1 1 10
1 2 1 30
1 2 1 30
2 3 1 20
2 3 1 20
3 4 1 15
3 4 1 15
3 4 1 15
Чтобы уменьшить набор данных, я сгруппировал по порядку и пользователю и агрегировал ItemCount и ItemPrice, чтобы получить такой набор данных:
User Order, ItemCount, OrderAmount
1 1 2 20
1 2 2 60
2 3 2 40
3 4 3 45
Теперь я хочу сгруппировать заказы по пользователям и провести некоторый анализ заказов для каждого пользователя. Есть ли в Spark способ сгруппировать заказы по пользователю и закончить парой >, где Пользователь — это идентификатор пользователя, а набор данных содержит заказы?
Единственное решение, которое я вижу на данный момент, — преобразовать набор данных в rdd и выполнить groupbykey, чтобы получить rddpair>, а затем написать некоторый код для анализа списка строк.
Я бы предпочел решение, в котором я могу работать с заказами как с набором данных и выполнять анализ с использованием функций набора данных. Может ли кто-нибудь указать мне правильное направление здесь? Это возможно?
Я новичок в искрах и использую Spark с Java, поскольку у меня очень ограниченный опыт работы со Scala, но примеры в Scala могут помочь.