拜托,你能帮我吗?我有一个80个csv文件数据集和一个主机和4个从机集群。我想读取Dataframe中的csv文件,并在四个从机上并行化它。之后,我想用groupby过滤Dataframe。在我的spark查询中,结果包含按(“code\uccam”,“dossier”)分组的“code\uccam”和“dossier”列。我想使用fp-growth算法来检测由“folder”重复的“code\u 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条答案
按热度按时间piv4azn71#
非常感谢你。成功了。我用collect\u set替换collect\u list。