[英]Building a dataframe from multiple conditions applied to an initial dataframe : Is this case for pandas rather than pyspark?
我有我最初認為是一個微不足道的問題。
我有一個與支持票務系統相關的數據集。 對於每張票,我有以下幾列 open_date、last_updated_date、狀態(僅打開或關閉)、產品、客戶。
我想要構建的是一個數據集,它每月總結門票狀態。 對於每個月,我想查看該月打開和關閉的門票數量。 這是相對簡單的。 我還想在每個月底按年齡確定積壓工作。 即月末打開的票中有多少<30 天、30-60 天、>60 天。
所以列將是:
月份,產品,客戶,Number_opened,Number_Closed,Number<30_days,Number30-60_days,Number>60_days
基本算法是
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
我正在研究基於 Spark 的 Palantir 系統,所以我認為 pyspark 將是首選之劍。 但是,這篇 SO post how to loop through each row of dataFrame in pyspark似乎說這不是在 Spark 上可以做的事情,因為它是一個分布式系統,更多地以列為基礎進行操作。
使用 .collect 對每一行進行循環,相當於將數據幀轉儲到內存中,這及時會導致問題。 或者,我可以導出到 Pandas 數據框並以這種方式工作,但隨着時間的推移,同樣的問題。
有沒有人想到另一種pyspark-esque方法可以做我正在尋找的東西?
此致,
科爾姆
PS 我認為每個支持團隊都會生成這種統計數據,所以如果有人知道一個魔法模塊已經這樣做了,那么可以隨意從根本上照亮我的一天。
也許看看Koalas ,一個允許在 Spark 數據上使用pandas
API 的包。
例如; 從他們的文檔:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.