У меня есть текстовый файл, который я хотел бы преобразовать в матрицу совместного использования.Я уже разбил файл на токены и использую комбинации для получения списка пар слов и их количества.Я делаю это так:
val logData = sc.textFile(input_file, 2).cache()
val tokens = logData.map(_.split(" ").toList)
val coo = tokens.flatMap(_.combinations(2)).map((_, 1)).reduceByKey(_ + _)
и получаю следующий вывод:
(List(garb, personae),1)
(List(chasm, dream),3)
(List(grandfathers, adulthood),1)
(List(dr, till),2)
(List(those, winds),1)
Теперь я хотел бы преобразовать его в разреженную матрицу со всеми уникальными словами в виде строки столбцы, и количество в качестве значений.Примерно так:
garb personae chasm dream ...
garb 0 1 0 0
personae 1 0 0 0
chasm 0 0 0 3
dream 0 0 3 0
...
Как я понимаю, я мог бы сначала преобразовать свои строки в индексы и использовать mllib Спарка для создания координатной матрицы.Тем не менее, после изучения документации, я застрял и ничего не могу с этим поделать.