pyspark中的值计数占用了太多时间

时间:2018-05-07 10:08:08

标签: pyspark pyspark-sql

Spark在4秒内读取一组十亿数据集非常有效,但df中不同值的计数非常慢且效率较低。即使对于一小组数据,它也需要超过5分钟,我尝试过这些方法:

value1 = df.where(df['values'] == '1').count()

df.groupBy("values").count().orderBy("value_count").show()

两者都返回正确的结果,但时间是这里的本质。 我知道 count 是一个懒惰的运算符,但是有另一种方法可以解决这个问题吗?

TIA

1 个答案:

答案 0 :(得分:0)

Count()是一个使Spark逐字计数的函数。 count()distinct()等操作显然需要时间,因为这些操作的性质,并建议在分布式环境中使用。

Spark的数据结构不支持索引,因此count()几乎可以完全搜索数据。