2015-09-15 3 views
4

Док Flink дает пример SCALA для алгоритма SVM:Перевести Flink в Java Скала

val trainingDS: DataSet[LabeledVector] = env.readLibSVM(pathToTrainingFile) 
val svm = SVM() 
.setBlocks(10) 

// Learn the SVM model 
svm.fit(trainingDS) 

Как бы вызов "соответствовать" перевести в Java?

(Выражение ява "svm.fit (trainingDS)" дает ошибку Java компилятор:

«Метод подходит (DataSet, ParameterMap, FitOperation) в типа СВМ не применяется для аргументов (DataSet) " )

ответ

4

В настоящее время FlinkML может использоваться только с Scala. Причина в том, что FlinkML поставляется с гибким конвейерным механизмом, который позволяет вам легко конструировать конвейеры анализа данных. Эти трубопроводы могут состоять из произвольного числа Estimators и одного конечного Predictor.

Реализация этого механизма основана на классах классов, которые инкапсулируют программную логику. Типы классов автоматически извлекаются и привязываются, объявляя их как неявные значения. Таким образом, компилятор Scala обеспечит выполнение правильной логики программы.

Теоретически, можно конструировать эти трубопроводы вручную. Тем не менее, это трудоемкий процесс, и поэтому я бы рекомендовал вам просто использовать Scala API Flink, если вы хотите взаимодействовать с FlinkML.

+0

Это все еще так? – Jeremy

+0

К сожалению, да. –