Apache spark Pyspark&x2B;关联规则挖掘:如何将数据帧转换为适合频繁模式挖掘的格式?

Apache spark Pyspark&x2B;关联规则挖掘:如何将数据帧转换为适合频繁模式挖掘的格式?,apache-spark,pyspark,associations,fpgrowth,Apache Spark,Pyspark,Associations,Fpgrowth,我正在尝试使用pyspark进行关联规则挖掘。假设我的数据如下所示: myItems=spark.createDataFrame([(1,'a'), (1,'b'), (1,'d'), (1,'c'), (2,'a'),

我正在尝试使用pyspark进行关联规则挖掘。假设我的数据如下所示:

myItems=spark.createDataFrame([(1,'a'),
                               (1,'b'),
                               (1,'d'),
                               (1,'c'),
                               (2,'a'),
                               (2,'c'),],
                              ['id','item']) 
但是,根据法律,格式应为:

df = spark.createDataFrame([(1, ['a', 'b', 'd','c']),
                            (2, ['a', 'c'])], 
                           ["id", "items"])
所以我需要将数据从垂直传输到水平,所有ID的长度都不同


我如何进行此传输,或者是否有其他方法进行此传输?

请确保您对
myItems
的原始定义有效<代码>收集列表通常在按id对数据帧进行分组后会很有帮助

>>> myItems=spark.createDataFrame([(1,'a'),
...                                (1,'b'),
...                                (1,'d'),
...                                (1,'c'),
...                                (2,'a'),
...                                (2,'c'),],
...                               ['id','item'])
>>> from pyspark.sql.functions import collect_list
>>> myItems.groupBy(myItems.id).agg(collect_list('item')).show()
+---+------------------+
| id|collect_list(item)|
+---+------------------+
|  1|      [a, b, d, c]|
|  2|            [a, c]|
+---+------------------+