apache-spark - 在 pyspark 中显示数据框的不同值的最佳方法是什么?
问题描述
我想检查数据框的不同值,我知道有一种方法可以做到这一点。我想看看 columns 和 的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()
.
推荐阅读
- kql - 无法从连接的字符串中解析日期
- python - 如何在 django 中使用 opencv 创建模型?
- arrays - 整数转数组说明
- python - 在我的 Docker 容器中,为什么我仍然可以绑定没有 NET_BIND_SERVICE 功能的端口 1?
- c++ - C ++多线程:使用switch语句“终止调用而没有活动异常”
- java - 如何使用 Maven 3“排除”嵌入在 uber-jar 中的依赖项?
- reactjs - 单击列表项时如何将数据从子项传递给父项
- php - 包括嵌套圆括号
- javascript - 如何用 js 和 css 创建一个库?
- r - 设置轴刻度和标签以在条形图上包含最大值