【问题标题】:Building a dataframe from multiple conditions applied to an initial dataframe : Is this case for pandas rather than pyspark?从应用于初始数据帧的多个条件构建数据帧:这种情况适用于 pandas 而不是 pyspark?
【发布时间】:2020-06-23 14:33:43
【问题描述】:

我有一个我最初认为是微不足道的问题。

我有一个与支持票务系统相关的数据集。 对于每张票,我都有以下列 open_date、last_updated_date、状态(仅打开或关闭)、产品、客户。

我要构建的是一个数据集,可以按月汇总票证状态。 对于每个月,我想查看该月打开和关闭的门票数量。这是相对简单的。 我还想在每个月底按年龄确定积压工作。即在月底开放的门票中有多少是 60 天的。

所以列将是:

月份、产品、客户、Number_opened、Number_Closed、Number60_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 帖子how to loop through each row of dataFrame in pyspark 似乎说这不是在 Spark 上要做的事情,因为它是一个分布式系统,更多地在柱状基础上运行。

使用 .collect 循环每行相当于将数据帧转储到内存中,这迟早会导致问题。 或者,我可以导出到 pandas 数据框并以这种方式工作,但随着时间的推移,同样的问题。

有没有人想到另一种 pyspark-esque 方法可以做我正在寻找的东西?

最好的问候,

科尔姆

附:我认为每个支持团队都会生成这种统计数据,所以如果有人知道已经有一个神奇的模块可以做到这一点,那么请随时从根本上照亮我的一天。

【问题讨论】:

    标签: python pandas pyspark


    【解决方案1】:

    也许看看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
    

    【讨论】:

      猜你喜欢
      • 2015-09-13
      • 1970-01-01
      • 2021-11-27
      • 2023-03-24
      • 2021-04-18
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 2015-05-31
      相关资源
      最近更新 更多