【问题标题】:Dividing dataframes in pyspark在pyspark中划分数据框
【发布时间】:2021-01-14 09:36:22
【问题描述】:

跟进this 问题和数据框,我正在尝试转换它

进入这个(我知道它看起来一样,但请参阅下一行代码以查看差异):

在 pandas 中,我使用了行代码teste_2 = (value/value.groupby(level=0).sum()),在 pyspark 中我尝试了几种解决方案;第一个是:

 df_2 = (df/df.groupby(["age"]).sum())

但是,我收到以下错误:TypeError: unsupported operand type(s) for /: 'DataFrame' and 'DataFrame'

第二个是:

df_2 = (df.filter(col('Siblings'))/gr.groupby(col('Age')).sum())

但它仍然无法正常工作。谁能帮帮我?

【问题讨论】:

  • 你想在这里做什么?你能显示示例数据框和所需的输出吗?
  • 是的,抱歉,将编辑@mck
  • @mck 已编辑!我觉得现在更容易理解了

标签: dataframe apache-spark pyspark apache-spark-sql divide


【解决方案1】:

希望我正确理解了这个问题。您似乎想将计数除以每个年龄组的计数总和。

from pyspark.sql import functions as F, Window

df2 = df.groupBy('age', 'siblings').count().withColumn(
    'count',
    F.col('count') / F.sum('count').over(Window.partitionBy('age'))
)

df2.show()
+---+--------+-----+
|age|siblings|count|
+---+--------+-----+
| 15|       0|  1.0|
| 10|       3|  1.0|
| 14|       1|  1.0|
+---+--------+-----+

【讨论】:

    猜你喜欢
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    相关资源
    最近更新 更多