在pyspark数据帧中查找多个分类列的基数

时间:2017-05-02 16:17:04

标签: python dataframe pyspark

我有一个数据框中的分类列的列表,我想找到每个列的基数。请指导我。 我正在尝试这个

data.select(cat_columns).distinct().count()

但不知怎的,这不起作用。 谢谢

1 个答案:

答案 0 :(得分:0)

如果要遍历大型数据帧,则

approx_count_distinct()应该可以解决问题。

不过,考虑到它已允许 rsd –最大估计误差(默认= 0.05)。对于rsd <0.01,使用countDistinct()更有效

cols_cardinality = df_dataset.select(*[approx_count_distinct(c).alias(c) for c in df_dataset.columns])