7
edf.select("x").distinct.show()
显示出存在于x
列的edf
DataFrame中的不同值。如何统计列中每个不同值的出现次数?
有没有一种有效的方法来显示这些不同值在数据框中出现的次数? (计数为每个不同的值)
edf.select("x").distinct.show()
显示出存在于x
列的edf
DataFrame中的不同值。如何统计列中每个不同值的出现次数?
有没有一种有效的方法来显示这些不同值在数据框中出现的次数? (计数为每个不同的值)
countDistinct
可能是第一选择:
import org.apache.spark.sql.functions.countDistinct
df.agg(countDistinct("some_column"))
如果速度比精度更重要的,你可以考虑approxCountDistinct
:
import org.apache.spark.sql.functions.approx_count_distinct
df.agg(approxCountDistinct("some_column"))
为了获取值和计数:
df.groupBy("some_column").count()
在SQL中(spark-sql
):
SELECT COUNT(DISTINCT some_column) FROM df
和
SELECT approx_count_distinct(some_column) FROM df
df.select("some_column").distinct.count
这是否告诉你,每一个不同的值怎么算?我认为这会告诉你,你有X值,而不是Val1有A,Val2有B,ValX有C? –