如何在 Python 中将 Pyspark Dataframe 转换为字典

How to Convert Pyspark Dataframe to Dictionary in Python

我有以下数据框。

Col1         Col2
AA_1          S1
ABC           S2
BCD           S3
BCD           S5
PQ_2          S6
XYP           S8
XYP           S9

我需要以下格式的输出。

data = {'AA_1': '[S1]', 'ABC': '[S2]', 'BCD': '[S3,S5]', 'PQ_2': '[S6]', 'XYP': '[S8,S9]'}

有没有什么方法可以仅使用 PySpark 来实现上述输出,这真的很有帮助。

可以通过col1分组,使用聚合方式collect_list收集col2来实现

    from pyspark.sql.functions import collect_list
    data = [
    ('AA_1',  'S1'),
    ('ABC',   'S2'),
    ('BCD',   'S3'),
    ('BCD',   'S5'),
    ('PQ_2',  'S6'),
    ('XYP',   'S8'),
    ('XYP',   'S9')
    ]

        
    df = spark.createDataFrame(data, ["col1", "col2"])
        
    data2 = df.groupBy('col1').agg(collect_list('col2').alias('values')).collect()
        
    data3 = {}
    for row in data2:
      data3[row.col1] = row.values
    
    print(data3)