【发布时间】:2016-11-29 14:57:35
【问题描述】:
尝试在 spark mllib 中执行 Prefixspan 算法时出现错误
PrefixSpan 类型中的方法 run(JavaRDD Sequence ) 不适用于参数(JavaRDD List String)
我在网站上看到的代码是
JavaRDD<List<List<Integer>>> sequences = sc.parallelize(Arrays.asList(
Arrays.asList(Arrays.asList(1, 2), Arrays.asList(3)),
Arrays.asList(Arrays.asList(1), Arrays.asList(3, 2), Arrays.asList(1, 2)),
Arrays.asList(Arrays.asList(1, 2), Arrays.asList(5)),
Arrays.asList(Arrays.asList(6))), 2);
PrefixSpan prefixSpan = new PrefixSpan().setMinSupport(0.5).setMaxPatternLength(5);
PrefixSpanModel<Integer> model = prefixSpan.run(sequences);
for (PrefixSpan.FreqSequence<Integer> freqSeq: model.freqSequences().toJavaRDD().collect()) {
System.out.println(freqSeq.javaSequence() + ", " + freqSeq.freq());
}
我的代码是
List<List<String>> sequences = createLists(featuresForAlgo);
JavaRDD<List<String>> rdd = sc.parallelize(sequences);
PrefixSpan prefixSpan = new PrefixSpan()
.setMinSupport(0.5)
.setMaxPatternLength(5);
PrefixSpanModel<String> model = prefixSpan.run(rdd);
for (PrefixSpan.FreqSequence<Integer> freqSeq: model.freqSequences().toJavaRDD().collect()) {
System.out.println(freqSeq.javaSequence() + ", " + freqSeq.freq());
}
方法 prefixSpan.run(rdd) 给出错误的地方。 知道为什么我会收到此错误吗? 据我所知 List 是一个序列。
谢谢
【问题讨论】:
标签: java apache-spark spark-streaming