首页 > 解决方案 > 在 pyspark 中显示数据框的不同值的最佳方法是什么?

问题描述

我想检查数据框的不同值,我知道有一种方法可以做到这一点。我想看看 columns 和 的rabbit唯一platypusbook

这是第一种方式

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-sparkpysparkapache-spark-sqlapache-zeppelin

解决方案


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

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


推荐阅读