Добавьте значения столбцов в pyspark для одного и того же идентификатора пользователя

#apache-spark #pyspark #apache-spark-sql

Вопрос:

У меня есть два DF, один с полной загрузкой, а другой с добавлением, я хочу добавить данные для идентификатора пользователя, которые одинаковы в обоих кадрах данных. Так что мой окончательный вывод заключается в том, что идентификатор пользователя тот же, но значение обновляется. Я хочу сделать это в фрейме данных, у меня есть другой подход , который является устаревшим, но для этого необходимо создать несколько промежуточных таблиц, которых я хочу избежать, как я могу добавить данные в основную таблицу

Полный Стол

Идентификатор пользователя сумма
ABC1234 20
ABC1235 10
ABC2222 20
ABC1345 10
ABC4444 5
ABC5555 9

инкрементная загрузка

Идентификатор пользователя сумма
ABC1234 5
ABC1235 5
ABC2222 7
ABC1345 20
ABC9999 15

Желаемый вывод

Идентификатор пользователя сумма
ABC1234 25
ABC1235 15
ABC2222 27
ABC1345 30
ABC4444 5
ABC5555 9
ABC9999 15

Ответ №1:

Вы можете объединить оба кадра данных, а затем суммировать все записи для одного и того же клиента:

 from pyspark.sql import functions as F

dfFull= ...
dfInc=...

dfResult=dfFull.union(dfInc).groupBy('customer_ID').agg(F.sum('amount').alias('amount'))
 

Комментарии:

1. Я не могу получить правильные результаты данных в большем наборе данных . как я могу это исправить?

2. @bigDataArtist какую ошибку вы видите?

3. Я смог ее решить. Спасибо