This question already has answers here:
Reshaping/Pivoting data in Spark RDD and/or Spark DataFrames

(6 个回答)


3年前关闭。




那个标题,太可怕了,对不起。这是我的意思:
这是起始数据集
C1   C2
AA   H
AB   M
AC   M
AA   H
AA   L
AC   L

然后它将变成一个具有 4 列的新数据集:
C1   CH   CM   CL
AA   2    0    1
AB   0    1    0
AC   0    1    1

最佳答案

您可以将 pivot api 与 groupByagg 以及其他函数一起使用,如下所示

from pyspark.sql import functions as F
finaldf = df.groupBy("C1").pivot("C2").agg(F.count("C2").alias("count")).na.fill(0)

你应该有 finaldf 作为
+---+---+---+---+
| C1|  H|  L|  M|
+---+---+---+---+
| AA|  2|  1|  0|
| AB|  0|  0|  1|
| AC|  0|  1|  1|
+---+---+---+---+

关于apache-spark - Pyspark,按列中的唯一值对另一列中的某个值进行分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48064651/

10-13 03:28