model.freqItemsets
Алгоритм FPGROWTH является искрой 2.4, не показывает никаких результатов для полного набора данных 16 ГБ, но та же модель или код работает для набора данных образца 1 ГБ, который является подмножеством или набором данных из набора данных 16 ГБ
фрагмент кода
import org.apache.spark._
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext._
import org.apache.log4j.Level
import org.apache.spark._
import org.apache.spark.SparkContext._
import org.apache.log4j._
import scala.io.Source
import java.nio.charset.CodingErrorAction
import scala.io.Codec
import org.apache.spark.mllib.recommendation._
import org.apache.spark.ml.fpm.FPGrowth
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SparkSession
import org.apache.spark.mllib.fpm.FPGrowthModel
import org.apache.spark.sql.DataFrame
import org.apache.spark.sql.functions.explode
object Full_Data_Association_4 {
def main(args: Array[String]) {
Logger.getLogger("org").setLevel(Level.ERROR)
val ss = SparkSession
.builder
.appName("Fpgrowth_1").getOrCreate()
import ss.implicits._
val in = ss.read.textFile(args(0))
val in_2 = in.map(x => x.split("\t")(1))
val in_3 = in_2.map(t => t.split(",")).toDF("items")
val fpgrowth = new FPGrowth().setItemsCol("items")
.setMinSupport(0.1).setMinConfidence(0.6)
val model = fpgrowth.fit(in_3)
model.freqItemsets.show(300)
}
И я получаю следующий вывод:
+-----+----+
|items|freq|
+-----+----+
+-----+----+