我有以下資料框。
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 來實作上述輸出,這真的很有幫助。
uj5u.com熱心網友回復:
這可以通過按 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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/436882.html
下一篇:平均字典串列的值
