Блоки данных: сводная таблица Python в фрейме данных spark - PullRequest
1 голос
/ 04 октября 2019

Любой может дать мне несколько советов по сводной таблице, используя фрейм данных spark на языке Python. Я получаю следующую ошибку: Столбец не повторяется

введите описание изображения здесь

У кого-нибудь есть идея?

1 Ответ

1 голос
/ 04 октября 2019

Функция Pivots Поворачивает столбец текущего DataFrame и выполняет указанную операцию агрегирования. Существует две версии сводной функции: одна требует, чтобы вызывающая сторона указывала список различных значений для поворота, а другая - нет.

  1. С указанием значений столбцов - df.groupBy ("year"). Pivot ("course", Seq ("dotNET", "Java")). Sum ("заработок")

  2. без указания значений столбцов (более кратко, но менее эффективно) - 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
...