Pyspark,按列计算其他列中某个值的唯一值

时间:2018-01-02 16:38:52

标签: apache-spark pyspark

那个头衔,是可怕的,对不起。这就是我的意思: 这是起始数据集

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

1 个答案:

答案 0 :(得分:4)

您可以使用pivot以及groupByagg以及其他功能使用from pyspark.sql import functions as F finaldf = df.groupBy("C1").pivot("C2").agg(F.count("C2").alias("count")).na.fill(0) api

finaldf

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

printf