Я пытаюсь посчитать некоторые определенные слова в уровне массива RDD. Это почти на полпути сделано. Однако результат показывает не совсем то, что я ищу.
Я имею дело с комментарием к обзору вин вроде
var aa = dataset.map(c => c(2))
Array[String] = Array("This tremendous 100% varietal wine hails from Oakville and was aged over three years in oak. Juicy red-cherry fruit and a compelling hint of caramel greet the palate, "Ripe aromas of fig, "Mac Watson honors the memory of a wine once made by his mother in this tremendously delicious, "This spent 20 months in 30% new French oak, "This is the top wine from La Bégude, "Deep,
Я пытаюсь подсчитать количество определенных слов в списке
var positive_list= List( "tremendously","delicious")
var sum=0
var rr=aa.map(column =>
for (i <- positive_list) yield {
if(column.contains(i)){
sum=sum+1
(column,sum)
} else {
(column,0)
}
})
rr.take(50)
Результат:
Array(List(("This tremendous 100% varietal wine hails from Oakville and was aged over three years in oak. Juicy red-cherry fruit and a compelling hint of caramel greet the palate,0), ("This tremendous 100% varietal wine hails from Oakville and was aged over three years in oak. Juicy red-cherry fruit and a compelling hint of caramel greet the palate,0)), List(("Ripe aromas of fig,0), ("Ripe aromas of fig,0)), List(("Mac Watson honors the memory of a wine once made by his mother in this tremendously delicious,1), ("Mac Watson honors the memory of a wine once made by his mother in this tremendously delicious,2))
Как видите. Есть несколько дубликатов, которые мне не нужны. Я знаю, это потому, что [yield] будет возвращать результат каждый раз в al oop, но я не могу удалить его, иначе я не получу ничего в списке.
Есть какая-нибудь идея, которую я могу сделать?