Scala 数据帧上的FPG增长?
假设我有一个这种结构的数据帧:Scala 数据帧上的FPG增长?,scala,machine-learning,data-mining,spark-dataframe,apache-spark-mllib,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 .... 等等 我想在此数据帧上使用FPGrowthAPI(作为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
的一部分),其中与相同时间戳对应的所有参数都被视为事务。我该怎么办
会谈中给出的示例只是一个正在读取的文件,每一行对应一个不同的事务
我是Spark的新手,所以欢迎任何形式的帮助!
(带Scala的Spark 1.6.2版)透视数据,以便每个事务有一行
然后运行FPgrowth。透视数据,以便每个事务有一行
然后运行FPgrowth。将列名附加到每个行值。您的数据帧将如下所示:
+----------+-------------+-------------+
| time | asset | parameter |
+----------+-------------+-------------+
| time:T1 | asset:A1 | parameter:P1|
| time:T1 | asset:A1 | parameter:P2|
| time:T1 | asset:A1 | parameter:P3|
+----------+-------------+-------------+
这使得值唯一将列名附加到每个行值。您的数据帧将如下所示:
+----------+-------------+-------------+
| time | asset | parameter |
+----------+-------------+-------------+
| time:T1 | asset:A1 | parameter:P1|
| time:T1 | asset:A1 | parameter:P2|
| time:T1 | asset:A1 | parameter:P3|
+----------+-------------+-------------+
这使得值唯一如果您的数据帧不是那么大,这没关系。我的数据帧可以有数百万个或更多的数据点。在这种情况下,数据透视会很耗时,不是吗?如果数据被排序,这是O(n)-不太糟糕。FP Growth需要事务中的数据,因此您最终将不得不支付此运行时成本。如果您的数据帧不是那么大,那没关系。我的数据帧可以有数百万个或更多的数据点。在这种情况下,数据透视会很耗时,不是吗?如果数据被排序,这是O(n)-不太糟糕。FP Growth需要事务中的数据,因此您最终将不得不支付此运行时成本。