2017-05-31 7 views
0

私はApache Spark 2を使ってテキストをトークン化しています。JavaのSpark Datasetからユニークな単語を取得

Dataset<Row> regexTokenized = regexTokenizer.transform(data); 

文字列を返します。

Dataset<Row> words = regexTokenized.select("words"); 

サンプルデータはこのようになります。

+--------------------+ 
|    words| 
+--------------------+ 
|[very, caring, st...| 
|[the, grand, cafe...| 
|[i, booked, a, no...| 
|[wow, the, places...| 
|[if, you, are, ju...| 

ここでは、すべてのユニークな単語を取得したいと思います。私はいくつかのフィルタ、flatMap、map関数を試してみました。私はスパークには新しいので、私はそれを理解できませんでした。

答えて

1

私はscalaから来ていますが、Javaにも同様の方法があると思います。

私はこの場合、explodeメソッドを使用してデータをDataset単語に変換する必要があると思います。 official documentation

を参照してください、それが役に立てば幸い爆発Methodeの詳細については

import org.apache.spark.sql.functions.explode 
val dsWords = regexTokenized.select(explode("words")) 
val dsUniqueWords = dsWords.distinct() 

このコードは、あなたの希望する結果を与える必要があります。

1

@Haroun Mohammediの回答に基づいて、私はJavaで理解することができました。

Dataset<Row> uniqueWords = regexTokenized.select(explode(regexTokenized.col("words"))).distinct(); 
uniqueWords.show(); 
関連する問題