在Spark上为fpgrowth准备二进制表示的数据

时间:2018-03-23 11:16:43

标签: apache-spark pyspark data-processing market-basket-analysis

我目前正在研究Kaggle的Santander产品推荐数据集,以便在FPGrowth上进行实验。

来自pyspark(ML)的FPGrowth算法需要将数据帧作为项集:

+---+------------+
| id|       items|
+---+------------+
|  0|   [A, B, E]|
|  1|[A, B, C, E]|
|  2|      [A, B]|
+---+------------+

但我的数据是这种格式:

+---+---+---+---+---+---+
| id|  A|  B|  C|  D|  E|
+---+---+---+---+---+---+
|  0|  1|  1|  0|  0|  1|
|  1|  1|  1|  1|  0|  1|
|  2|  1|  1|  0|  0|  0|
+---+---+---+---+---+---+

我试图通过用列名替换1并从中创建列表来解决它,但这不起作用。

有没有办法使用Spark数据帧功能执行此转换?

非常感谢!

1 个答案:

答案 0 :(得分:0)

使用udf:

'b'