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

What's the best way to show distinct values for a dataframe in pyspark?

我想检查数据框的不同值,我知道有一些方法可以做到这一点。我想查看 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

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

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