作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Scala 聚合 Spark 数据框中的列,如下所示:
import org.apache.spark.sql._
dfNew.agg(countDistinct("filtered"))
但是我得到了错误:
error: value agg is not a member of Unit
谁能解释一下为什么?
编辑:澄清我正在尝试做的事情:我有一列是一个字符串数组,我想计算所有行的不同元素,对任何其他列不感兴趣。数据:
+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|racist|filtered |
+------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+
|false |[rt, @dope_promo:, crew, beat, high, scores, fugly, frog, 😍🔥, https://time.com/sxp3onz1w8] |
|false |[rt, @axolrose:, yall, call, kermit, frog, lizard?, , https://time.com/wdaeaer1ay] |
我想计算过滤后的数,给出:
rt:2, @dope_promo:1, crew:1, ...frog:2 etc
最佳答案
您需要先展开
您的数组,然后才能计算出现次数:查看每个元素的计数:
dfNew
.withColumn("filtered",explode($"filtered"))
.groupBy($"filtered")
.count
.orderBy($"count".desc)
.show
或者只是为了获取不同元素的数量:
val count = dfNew
.withColumn("filtered",explode($"filtered"))
.select($"filtered")
.distinct
.count
关于scala - 我如何在 Spark/Scala 中使用 countDistinct?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44886831/
我是一名优秀的程序员,十分优秀!