FPGrowth在Dataframe上?

时间:2016-11-23 15:54:53

标签: scala machine-learning data-mining spark-dataframe apache-spark-mllib

假设我有一个这种结构的数据帧:

time| asset | parameter  
----|-------|----------
T1  |  A1   | P1
T1  |  A1   | P2
T1  |  A1   | P3
T1  |  A2   | P1
T1  |  A2   | P2
T1  |  A2   | P3
T2  |  A1   | P1
....

等等

我想在此数据框上使用FPGrowth API(作为spark.mllib的一部分),其中与同一时间戳对应的所有参数都被视为事务。我该怎么做?

documentation中给出的示例只是简单地说明了正在读取的文件,每行对应一个不同的事务。

我是Spark的新手,欢迎任何形式的帮助! (Spark版本1.6.2与Scala)

2 个答案:

答案 0 :(得分:0)

透视您的数据,以便每次交易都有一行。

然后运行FPgrowth。

答案 1 :(得分:0)

将列名添加到每个行值。您的Dataframe将如下所示:

+----------+-------------+-------------+
| time     | asset       | parameter   |
+----------+-------------+-------------+
| time:T1  |  asset:A1   | parameter:P1|  
| time:T1  |  asset:A1   | parameter:P2|  
| time:T1  |  asset:A1   | parameter:P3|
+----------+-------------+-------------+

这使得值唯一