Я пытаюсь переписать известный пример классификации текстов Спарк в (http://chimpler.wordpress.com/2014/06/11/classifiying-documents-using-naive-bayes-on-apache-spark-mllib/) на Java 8.операция groupingBy в Java-8
У меня есть проблема - в этом коде я делаю некоторые препараты данных для получение idfs всех слов во всех файлах:
termDocsRdd.collect().stream().flatMap(doc -> doc.getTerms().stream()
.map(term -> new ImmutableMap.Builder<String, String>()
.put(doc.getName(),term)
.build())).distinct()
И я застрял в операции groupBy. (Мне нужно группировать это по срокам, поэтому каждый термин должен быть ключом, а значение должно быть последовательностью документов). В Scala эта операция выглядит очень просто - .groupBy (_._ 2). Но как я могу это сделать на Java?
Я пытался написать что-то вроде:
.groupingBy(term -> term, mapping((Document) d -> d.getDocNameContainsTerm(term), toList()));
но это неправильно ...
Кто-нибудь знает, как писать в Java?
спасибо.
Спасибо Людей за ответ! Но когда я пытаюсь использовать ваш код в Eclipse - я получил ошибку компиляции - ** Невозможно выполнить сопоставление типов: невозможно преобразовать из ** 'Map
Боюсь, для поддержки Java-8 Eclipse по-прежнему требуется больше времени, чтобы созреть. – Holger
Спасибо, человек! Я попробую другую IDE. – dimson