Изменение формы / поворот данных в Spark RDD и / или Spark DataFrames

У меня есть некоторые данные в следующем формате (RDD или Spark DataFrame):

from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)

 rdd = sc.parallelize([('X01',41,'US',3),
                       ('X01',41,'UK',1),
                       ('X01',41,'CA',2),
                       ('X02',72,'US',4),
                       ('X02',72,'UK',6),
                       ('X02',72,'CA',7),
                       ('X02',72,'XX',8)])

# convert to a Spark DataFrame                    
schema = StructType([StructField('ID', StringType(), True),
                     StructField('Age', IntegerType(), True),
                     StructField('Country', StringType(), True),
                     StructField('Score', IntegerType(), True)])

df = sqlContext.createDataFrame(rdd, schema)

Я хотел бы изменить форму данных, преобразовать определенные строки в стране (в частности, в США, Великобритании и ЦА) в столбцы:

ID    Age  US  UK  CA  
'X01'  41  3   1   2  
'X02'  72  4   6   7   

По сути, мне нужно что-то вроде Pythonpivot рабочий процесс:

categories = ['US', 'UK', 'CA']
new_df = df[df['Country'].isin(categories)].pivot(index = 'ID', 
                                                  columns = 'Country',
                                                  values = 'Score')

Мой набор данных довольно большой, поэтому я не могуcollect() и загружать данные в память для изменения формы самого Python. Есть ли способ конвертировать Python.pivot() в вызываемую функцию при отображении RDD или Spark DataFrame? Любая помощь будет оценена!

Ответы на вопрос(2)

Ваш ответ на вопрос