2016-03-10 3 views
0

У меня есть dataframe под названием статьиКак я конвертировать искры dataframe в РДУ и получить мешок слов

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

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

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

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

Благодаря

ответ

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 extracting values from a Row