apache-spark - pyspark 如何有效地进行这种转换?

标签 apache-spark pyspark

<分区>

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

  • 像这样的数据框:

| name |    id | flag  | cnt |
| li   | 19196 | true  |  10 |
| li   | 19196 | false |  15 |
  • 我想把它转换成:

| name |    id | flag_true | flag_false |
| li   | 19196 |        10 |         15 |

最佳答案

您可以为此使用数据透视表:

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

关于apache-spark - pyspark 如何有效地进行这种转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52829732/

相关文章:

scala - Spark Streaming - 根据按键分组的键值对计算统计信息

java - Apache Beam 中是否支持 Azure Blob?

apache-spark - Pyspark - 拆分一列并取 n 个元素

json - 很难将 JSON 转换为 Spark Dataframe

python - pyspark 中的命名累加器

python - 根据条件将pyspark数据帧拆分为多个数据帧

apache-spark - 在一周开始日期(星期一)汇总整周

apache-spark - 读取orc不会触发投影下推和谓词下推

scala - 有没有更好的方法来显示整个 Spark SQL DataFrame?

python - 我将如何在 Dask 中进行 Spark 爆炸?