Pyspark PypSpark按和分组

Pyspark PypSpark按和分组,pyspark,apache-spark-sql,spark-dataframe,pyspark-sql,Pyspark,Apache Spark Sql,Spark Dataframe,Pyspark Sql,我有一个4列的pyspark数据帧 id/编号/值/x 我想按列id、编号分组,然后添加一个新的列,每个id的值和编号的总和。我想在不做任何事情的情况下保留colunms x df=df。选择(“id”、“number”、“value”、“x”) .groupBy('id','number')。带列(“值的总和”,df.value.sum()) 最后我想要一个有5列的数据框:id/number/value/x/sum\u of\u value) 有人能帮忙吗?假设您的数据帧df最初有3列 df

我有一个4列的pyspark数据帧

id/编号/值/x

我想按列id、编号分组,然后添加一个新的列,每个id的值和编号的总和。我想在不做任何事情的情况下保留colunms x

df=df。选择(“id”、“number”、“value”、“x”)
.groupBy('id','number')。带列(“值的总和”,df.value.sum())
最后我想要一个有5列的数据框:id/number/value/x/sum\u of\u value)


有人能帮忙吗?

假设您的数据帧df最初有3列

df1 = df.groupBy("id","number").count()
现在,df1将包含两列id、number和count

现在,您可以基于列“id”和“number”连接df1和df,并选择您想要选择的任何列

希望能有帮助

问候,


Neeraj

你试图达到的结果毫无意义。您的输出数据帧将只包含按分组或聚合(在本例中求和)的列<当您按
id
number
分组时,code>x和
value
将具有多个值

您可以有如下3列输出(
id
number
sum(value)
):

df_summed=df.groupBy(['id','number'])['value'].sum()

请提供一些示例数据(下次请格式化您的代码)和值,而不是计数:-)