Apache spark pyspark如何有效地进行此转换?

Apache spark pyspark如何有效地进行此转换?,apache-spark,pyspark,Apache Spark,Pyspark,我是pyspark的新手,刚刚知道最简单的操作。而且我的英语很差,对不起,我不能描述得很详细,以下是示例!谢谢你的回答 数据帧如下所示: 我想将其转换为: 您可以使用数据透视表进行以下操作: df.groupBy(['name', 'id'])\ .pivot('flag')\ .agg(f.sum('cnt'))\ .withColumnRenamed('true', 'flag_true')\ .withColumnRenamed('false', 'flag_f

我是pyspark的新手,刚刚知道最简单的操作。而且我的英语很差,对不起,我不能描述得很详细,以下是示例!谢谢你的回答

  • 数据帧如下所示:

  • 我想将其转换为:


您可以使用数据透视表进行以下操作:

df.groupBy(['name', 'id'])\
  .pivot('flag')\
  .agg(f.sum('cnt'))\
  .withColumnRenamed('true', 'flag_true')\
  .withColumnRenamed('false', 'flag_false')\
  .show()
上面印着:

+----+-----+----------+---------+
|name|   id|flag_false|flag_true|
+----+-----+----------+---------+
|  li|19196|        15|       10|
+----+-----+----------+---------+
df.groupBy(['name', 'id'])\
  .pivot('flag')\
  .agg(f.sum('cnt'))\
  .withColumnRenamed('true', 'flag_true')\
  .withColumnRenamed('false', 'flag_false')\
  .show()
+----+-----+----------+---------+
|name|   id|flag_false|flag_true|
+----+-----+----------+---------+
|  li|19196|        15|       10|
+----+-----+----------+---------+