0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 package org.apache.spark.examples.mllib;
0019
0020
0021 import java.util.Arrays;
0022 import java.util.List;
0023
0024 import org.apache.spark.api.java.JavaRDD;
0025 import org.apache.spark.api.java.JavaSparkContext;
0026
0027 import org.apache.spark.mllib.fpm.PrefixSpan;
0028 import org.apache.spark.mllib.fpm.PrefixSpanModel;
0029
0030 import org.apache.spark.SparkConf;
0031
0032 public class JavaPrefixSpanExample {
0033
0034 public static void main(String[] args) {
0035
0036 SparkConf sparkConf = new SparkConf().setAppName("JavaPrefixSpanExample");
0037 JavaSparkContext sc = new JavaSparkContext(sparkConf);
0038
0039
0040 JavaRDD<List<List<Integer>>> sequences = sc.parallelize(Arrays.asList(
0041 Arrays.asList(Arrays.asList(1, 2), Arrays.asList(3)),
0042 Arrays.asList(Arrays.asList(1), Arrays.asList(3, 2), Arrays.asList(1, 2)),
0043 Arrays.asList(Arrays.asList(1, 2), Arrays.asList(5)),
0044 Arrays.asList(Arrays.asList(6))
0045 ), 2);
0046 PrefixSpan prefixSpan = new PrefixSpan()
0047 .setMinSupport(0.5)
0048 .setMaxPatternLength(5);
0049 PrefixSpanModel<Integer> model = prefixSpan.run(sequences);
0050 for (PrefixSpan.FreqSequence<Integer> freqSeq: model.freqSequences().toJavaRDD().collect()) {
0051 System.out.println(freqSeq.javaSequence() + ", " + freqSeq.freq());
0052 }
0053
0054
0055 sc.stop();
0056 }
0057 }