我正在使用以下Python/Pandas命令:
df.groupby('Column_Name').agg(lambda x: x.value_counts().max()
我如何在PySpark中获取一个DataFrameGroupBy
对象的所有列的值计数?
我正在使用以下Python/Pandas命令:
df.groupby('Column_Name').agg(lambda x: x.value_counts().max()
我如何在PySpark中获取一个DataFrameGroupBy
对象的所有列的值计数?
差不多一样:
spark_df.groupBy('column_name').count().orderBy('count')
在 groupBy
中,您可以使用逗号分隔多个列。
例如 groupBy('column_1', 'column_2')
.show()
以查看结果可能会令人感到困惑。请注意,这不会改变原意。 - rerspark_df.groupBy('column_name').count().orderBy(col('count').desc()).show()
- Bernard当您想控制顺序时,请尝试以下方法:
data.groupBy('col_name').count().orderBy('count', ascending=False).show()
试试这个:
spark_df.groupBy('column_name').count().show()
from pyspark.sql import SparkSession
from pyspark.sql.functions import count, desc
spark = SparkSession.builder.appName('whatever_name').getOrCreate()
spark_sc = spark.read.option('header', True).csv(your_file)
value_counts=spark_sc.select('Column_Name').groupBy('Column_Name').agg(count('Column_Name').alias('counts')).orderBy(desc('counts'))
value_counts.show()
但是在单机上,Spark 比 Pandas 的 value_counts() 慢得多。
df.groupBy('column_name').count().orderBy('count').show()