我想检查数据帧的不同值,我知道有一种方法可以做到。我想查看列rabbit
,platypus
和book
的唯一值。
这是第一种方法
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()
。