Создание фрейма данных из нескольких условий, примененных к начальному фрейму данных: это случай для pandas, а не для pyspark? - PullRequest
0 голосов
/ 11 марта 2020

У меня есть то, что я изначально думал, будет тривиальной проблемой.

У меня есть набор данных, относящийся к системе поддержки. Для каждого тикета у меня есть следующие столбцы 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, который уже делает это, то не стесняйтесь радикально украсить мой день.

1 Ответ

0 голосов
/ 11 марта 2020

Может быть, посмотрите на Koalas , пакет, который позволяет использовать pandas API для данных Spark.

Например; из их документации:

import databricks.koalas as ks
import pandas as pd

pdf = pd.DataFrame({'x':range(3), 'y':['a','b','b'], 'z':['a','b','b']})

# Create a Koalas DataFrame from pandas DataFrame
df = ks.from_pandas(pdf)

# Rename the columns
df.columns = ['x', 'y', 'z1']

# Do some operations in place:
df['x2'] = df.x * df.x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...