[英]Pyspark DataFrame count occurrences of value of a column in an other column
我得到了一個數據框,其中包括:
+--------------------+--------------------+-------------+
| src| dst|linkage_count|
+--------------------+--------------------+-------------+
| abc.com| _spf.a22.biz| 0|
| abc.com| _spf.google.com| 0|
| _spf.google.com| _spf.mail.ru| 0|
+--------------------+--------------------+-------------+
現在我想遍歷每一行並獲取“dst”列的值,並在“src”列中找到該“dst”值的出現次數並將其添加到“linkage_count”列中。 所以在這種情況下,結果應該是:
+--------------------+--------------------+-------------+
| src| dst|linkage_count|
+--------------------+--------------------+-------------+
| abc.com| _spf.a22.biz| 0|
| abc.com| _spf.google.com| 1|
| _spf.google.com| _spf.mail.ru| 0|
+--------------------+--------------------+-------------+
使用自連接的一種方法:
df.alias("l").join(df.alias("r"), col("l.dst") == col("r.src"), "left")\
.groupBy("l.src", "l.dst")\
.agg((count("r.src") + first("l.linkage_count")).alias("linkage_count"))\
.show()
我們在dst == src
上使用左連接並計算添加到linkage_count
列的匹配數。
給出:
+---------------+---------------+-------------+
| src| dst|linkage_count|
+---------------+---------------+-------------+
| abc.com| _spf.a22.biz| 0|
|_spf.google.com| _spf.mail.ru| 0|
| abc.com|_spf.google.com| 1|
+---------------+---------------+-------------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.