簡體   English   中英

從應用於初始數據幀的多個條件構建數據幀:這是熊貓而不是 pyspark 的情況嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM