两天前刚从scala开始。
事情是这样的,我有一个df和一个列表。df包含两列:段落和作者,列表包含单词(字符串)。我需要计算出每一个单词出现的段落数。
到目前为止,我的想法是在列表上创建一个for循环,使用rlike查询df并创建一个新的df,但是即使这样做有效,我也不知道如何做。感谢您的帮助!
编辑:添加示例数据和预期输出
// Example df and list
val df = Seq(("auth1", "some text word1"), ("auth2","some text word2"),("auth3", "more text word1").toDF("a","t")
df.show
+-------+---------------+
| a| t|
+-------+---------------+
|auth1 |some text word1|
|auth2 |some text word2|
|auth1 |more text word1|
+-------+---------------+
val list = List("word1", "word2")
// Expected output
newDF.show
+-------+-----+----------+
| word| a|text count|
+-------+-----+----------+
|word1 |auth1| 2|
|word2 |auth2| 1|
+-------+-----+----------+
1条答案
按热度按时间jogvjijk1#
您可以对列表中的每个单词进行筛选和聚合,并使用
unionAll
: