在pyspark中显示数据帧的不同值的最佳方法是什么?

问题描述 投票:1回答:1

我想检查数据帧的不同值,我知道有一种方法可以做到。我想查看列rabbitplatypusbook的唯一值。

这是第一种方法

mydf
.select("rabbit", "platypus", "book")
.distinct
.show 

这是第二种方式

mydf
.select("rabbit", "platypus", "book")
.distinct
.count

这是另一种方式

 val rabbit = mydf.groupByKey(log => {
     val rabbit = mydf.rabbit
     rabbit
 }).count.collect

 val platypus = mydf.groupByKey(log => {
     val platypus = mydf.platypus 
     platypus
 }).count.collect

 val book = mydf.groupByKey(log => {
     val book = mydf.book 
     book
     }).count.collect
apache-spark pyspark apache-spark-sql apache-zeppelin
1个回答
2
投票

[.collect将所有结果返回给驱动程序,并在大型数据集上导致OOM错误。

使用.distinct()方法,如果要计数不同的记录,则使用df.distinct().count()

© www.soinside.com 2019 - 2024. All rights reserved.