Функция Pivots Поворачивает столбец текущего DataFrame и выполняет указанную операцию агрегирования. Существует две версии сводной функции: одна требует, чтобы вызывающая сторона указывала список различных значений для поворота, а другая - нет.
С указанием значений столбцов - df.groupBy ("year"). Pivot ("course", Seq ("dotNET", "Java")). Sum ("заработок")
без указания значений столбцов (более кратко, но менее эффективно) - df.groupBy ("year"). Pivot ("course"). Sum ("заработок")
Вы движетесь в правильном направлении. Пример рабочего кода, python 2
>>> from pyspark.sql import SparkSession
>>> from pyspark.sql.functions import col
>>> spark = SparkSession.builder.master('local').appName('app').getOrCreate()
>>> df = spark.read.option('header', 'true').csv('pivot.csv')
>>> df = df.withColumn('value1', col('value1').cast("int"))
>>> pdf = df.groupBy('thisyear').pivot('month', ['JAN','FEB']).sum('value1')
>>> pdf.show(10)
+--------+---+---+
|thisyear|JAN|FEB|
+--------+---+---+
| 2019| 3| 2|
+--------+---+---+
//pivot.csv
thisyear,month,value1
2019,JAN,1
2019,JAN,1
2019,FEB,1
2019,JAN,1
2019,FEB,1