在pyspark中划分数据帧

Dividing dataframes in pyspark

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

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

在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())

但是还是不行。谁能帮帮我?

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

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|
+---+--------+-----+