我有一个pyspark数据框,其中包含一个文本列。此列中可以包含文本(字符串)信息。我只想在这列的每一行中数一数a,b,c,d等等。就像:
df = spark.read.csv('Data.csv', header=True)
df.select(['text']).show(truncate = False)
+-------------------------+
|text |
+-------------------------+
|BBEBEBEFC |
|DDBBCDCBBECCBBE |
|DCDBBEDBBE |
+-------------------------+
现在我要计算每列中的b,c,d等的数量,并创建相应的列,如
+-------------------------+-------------------+
|text | B | C | D | E | F |
+-------------------------+---+---+---+---+---+
|BBEBEBEFC | 4 | 1 | 0 | 3 | 1 |
|DDBBCDCBBECCBBE | 6 | 4 | 3 | 2 | 0 |
+-------------------------+---+---+---+---+---+
在Pandas中,可以简单地通过以下方式完成:
df['A'] = df['text'].str.count('A')
...
我想在没有循环的pyspark中执行相同的操作(数据量很大)。如果有人能提出更好的方法。
1条答案
按热度按时间lymgl2op1#
拆分、分解、分组依据、透视、计数: