如何计算代币?

时间:2016-04-18 15:17:37

标签: scala apache-spark apache-spark-sql

我想从字符串中提取单词并计算它们(说出单词出现的频率)。

val tokenized = tokenizer.transform(title)
val words = tokenized.select("words").take(5).foreach(println)

我得到的是这样的格式。

[WrappedArray(rt, happy, new, year!!! ]
[WrappedArray(rt, happy, new, year!!! ]
[WrappedArray(rt, happy, new, year!!! ]
[WrappedArray(rt, happy, new, year!!! ]
[WrappedArray(rt, happy, new, year!!! ]

我想要的是按单词分组的单词列表。怎么做?

1 个答案:

答案 0 :(得分:1)

您可以将 explode groupBy count 聚合结合使用,如下所示:

tokenized.withColumn("words", explode(col("words")))
  .groupBy("words")
  .agg(count("*")).show()