我尝试将字符串列中以逗号分隔的值拆分为单独的值,并对每个单独的值进行计数。
我的数据格式如下:
+--------------------+
| tags|
+--------------------+
|cult, horror, got...|
| violence|
| romantic|
|inspiring, romant...|
|cruelty, murder, ...|
|romantic, queer, ...|
|gothic, cruelty, ...|
|mystery, suspense...|
| violence|
|revenge, neo noir...|
+--------------------+
我希望结果看起来像
+--------------------+-----+
| tags|count|
+--------------------+-----+
|cult | 4|
|horror | 10|
|goth | 4|
|violence | 30|
...
我尝试过的代码没有工作如下:
data.select('tags').groupby('tags').count().show(10)
我还使用了一个countdistinct函数,它也无法工作。
我觉得我需要有一个函数,用逗号分隔值,然后列出它们,但不确定如何执行它们。
1条答案
按热度按时间euoag5mw1#
可以使用split()拆分字符串,然后使用explode(),最后使用groupby和count: