我无法适应FP-Growth模型

时间:2019-02-20 08:56:05

标签: scala apache-spark apache-spark-mllib fpgrowth

请,你能帮我吗?我有80个CSV文件数据集,以及一个主机和4个从机的群集。我想读取数据帧中的CSV文件,并在四个从站上将其并行化。之后,我想用分组依据过滤数据框。在我的Spark查询中,结果包含“ code_ccam”和“ dossier”列按(“ code_ccam”,“ dossier”)分组。我想使用FP-Growth算法来检测由“文件夹”重复的“ code_ccam”序列。但是当我使用FPGrowth.fit()命令时,出现以下错误:

"error: type mismatch;
found : org.apache.spark.rdd.RDD[org.apache.spark.sql.Row]
required: org.apache.spark.sql.Dataset[_]"

这是我的spark命令:

val df = spark.read.option("header", "true").csv("file:///home/ia/Projet-Spark-ace/Donnees/Fichiers CSV/*.csv")
import org.apache.spark.sql.functions.{concat, lit}
val df2 = df.withColumn("dossier", concat(col("num_immatriculation"), lit(""), col("date_acte"), lit(""), col("rang_naissance"), lit(""), col("date_naissance")))
val df3 = df2.drop("num_immatriculation").drop("date_acte").drop("rang_naissance").drop("date_naissance")
val df4 = df3.select("dossier","code_ccam").groupBy("dossier","code_ccam").count()
val transactions = df4.agg(collect_list("code_ccam").alias("codes_ccam")).rdd.map(x => x)
import org.apache.spark.ml.fpm.FPGrowth
val fpgrowth = new FPGrowth().setItemsCol("code_ccam").setMinSupport(0.5).setMinConfidence(0.6)
val model = fpgrowth.fit(transactions)

1 个答案:

答案 0 :(得分:0)

非常感谢你。有效。我用collect_set代替了collect_list。