【发布时间】:2016-03-29 03:45:41
【问题描述】:
我正在使用 Spark 1.5.2 和 Java API。有没有办法创建一个包含单词的 DataFrame 计算每个文档的所有单词并在每个文档的一行中计数?
到目前为止,我已经能够使用“org.apache.spark.sql.functions.explode”来转换每个单词 将文档中的文本放入一个新行中。
然后我可以使用以下代码创建一个新的 DataFrame,其中包含多行中的每个文档、单词和字数:
df = df.orderBy("doc_id").groupBy(df.col("doc_id"), df.col("word")).count();
输出:
+------+-----------+-----+
|doc_id| word|count|
+------+-----------+-----+
|doc_1 | game| 2|
|doc_1 | life| 1|
|doc_1 |everlasting| 1|
|doc_1 | learn| 1|
|doc_2 | special| 1|
|doc_2 | moment| 1|
|doc_2 | time| 1|
|doc_3 | unexamined| 1|
|doc_3 | life| 1|
|doc_3 | worth| 1|
|doc_3 | live| 1|
+------+-----------+-----+
如何创建以下格式的 DataFrame:
+------+-----------+---------------------------------+
|doc_id| word_counts|
+------+-----------+------------------------------+
|doc_1 |{game=1, learn=2, everlating=1, life=1}
|doc_2 |{special=1, moment=2, everlating=1, time=1}
谢谢。任何想法都非常感谢
【问题讨论】:
标签: java apache-spark dataframe apache-spark-sql