我有一個包含列的資料框:語言和單詞
sdf = spark.createDataFrame([
('eng', "cat"),
('eng', 'cat'),
('eng','dog'),
('eng','cat')
], ["lang", "text"])
sdf.show()
---- ----
|lang|text|
---- ----
| eng| cat|
| eng| cat|
| eng| dog|
| eng| cat|
---- ----
我想按語言(我期望的)對最熱門的詞進行分組:
lang count_words
eng {'cat':3,'dog':1}
我這樣做:
grouped = sdf.groupBy("lang").agg(count('text').alias("count_words"))
但我明白我需要在這里使用create_map(),但我不太明白如何
uj5u.com熱心網友回復:
按“text”和“lang”分組,然后按照您的意圖使用 create_map() 。這里是:
from pyspark.sql.functions import create_map, count
grouped = sdf.groupBy(["lang", "text"]).agg(create_map('text', count('text')).alias('count_words'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/347527.html
