Как преобразовать фрейм данных искры в RDD и получить пакет слов

У меня есть фрейм данных, называемый статьей

+--------------------+
|     processed_title|
+--------------------+
|[new, relictual, ...|
|[once, upon,a,time..|
+--------------------+

Я хочу сгладить его, чтобы получить его как мешок слов. Как я мог добиться этого, используя текущую ситуацию. Я пробовал приведенный ниже код, который, кажется, дает мне проблему несоответствия типа.

val bow_corpus = article.select("processed_title").rdd.flatMap(y => y)

В конечном итоге я хочу использовать этот bow_corpus для обучения модели word2vec.

Спасибо


person Krishna Kalyan    schedule 10.03.2016    source источник


Ответы (1)


Предполагая, что processed_title представлено в SQL как array<string>:

article.select("processed_title").rdd.flatMap(_.getSeq[String](0))

Существует также Word2Vec трансформер, который можно обучить непосредственно на DataFrame:

import org.apache.spark.ml.feature.Word2Vec

val word2Vec = new Word2Vec()
  .setInputCol("processed_title")
  .setOutputCol("vectors")
  .setMinCount(0)
  .fit(article)

word2Vec.findSynonyms("foo", 1)

См. также Spark, извлекающий значения из строки

person zero323    schedule 10.03.2016