У меня есть то, что я изначально думал, будет тривиальной проблемой.
У меня есть набор данных, относящийся к системе поддержки. Для каждого тикета у меня есть следующие столбцы open_date, last_updated_date, статус (только открытый или закрытый), продукт, клиент.
Я хочу построить набор данных, который суммирует статус заявок на ежемесячной основе. Для каждого месяца я хочу видеть количество открытых и закрытых билетов в этом месяце. Это относительно просто. Я также хочу определить отставание по возрасту в конце каждого месяца. то есть, сколько билетов, открытых в конце месяца, было <30 дней, 30-60 дней,> 60 дней.
Таким образом, столбцы будут:
месяц, продукт, клиент, число открытое, число закрытое, число <30_дней, число 30-60_дней, число> 60_дней
Алгоритм базового c будет
for each ticket
increment opened and closed values in corresponding months
increment relevant backlog age columns in relevant months between opened month and closed month
Я работаю в системе Palantir основанный на Spark, поэтому я подумал, что Pyspark будет мечом выбора. Тем не менее, этот пост о том, как l oop через каждую строку dataFrame в pyspark , похоже, говорит о том, что это не то, что нужно делать в Spark, поскольку это распределенная система, которая действует больше на столбчатой основе. ,
Для l oop на строку с .collect было бы эквивалентно выгрузке кадра данных в память, что со временем вызовет проблемы. В качестве альтернативы, я могу экспортировать в pandas фрейм данных и работать таким образом, но со временем возникают те же проблемы.
Есть ли у кого-нибудь другой подход к pyspark-esque, который может сделать то, что я ищу?
С наилучшими пожеланиями,
Colm
PS Я думаю, что каждая группа поддержки генерирует такую статистику, поэтому, если кто-то знает модуль magi c, который уже делает это, то не стесняйтесь радикально украсить мой день.