在尝试将 XLSX 中的数据转换为 FPGrowth 的正确格式时,我在运行时遇到以下错误消息model = fpGrowth.fit(pivotDF)
:
IllegalArgumentException: requirement failed: The input column must be array, but got bigint.
我从 XLSX 文件中取出数据并将其读入 Pandas DataFrame,然后将其转换为 Spark Dataframe,进行一些清理和旋转以获得所需的表。
pivotDF.printSchema()
显示了这一点:
|-- SalesTransactionID: long (nullable = true)
|-- 0: long (nullable = true)
|-- 1: long (nullable = true)
|-- 2: long (nullable = true)
|-- 3: long (nullable = true)
|-- 4: long (nullable = true)
|-- 5: long (nullable = true)
|-- 6: long (nullable = true)
....
我的数据(pivotDF)如下所示:
+------------------+---+---+---+---+---+---+---+---+---+---+
|SalesTransactionID| 0| 1| 2| 3| 4| 5| 6| 7| 8| 9|
+------------------+---+---+---+---+---+---+---+---+---+---+
| 0| 0| 0| 0| 0| 0| 0| 0| 6| 6| 0|
| 1| 0| 0| 0| 0| 0| 0| 0| 0| 3| 0|
| 2| 0| 0| 0| 0| 0| 0| 2| 0| 0| 0|
| 3| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0|
| 4| 0| 0| 0| 0| 0| 0| 0| 0| 0| 0|
+------------------+---+---+---+---+---+---+---+---+---+---+
有没有办法将它转换/转换为所需的数组类型列?
提前谢谢了
编辑:我的目标是这样的:
([(0, [7, 8]),
(1, [8]),
(2, [6])],
["id", "items"])