- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用多个动态聚合操作在 Spark 数据帧上聚合。
我想使用具有多个动态聚合操作(由用户在 JSON 中传递)的 Scala 对 Spark 数据帧进行聚合。我正在将 JSON 转换为 Map
.
下面是一些示例数据:
colA colB colC colD
1 2 3 4
5 6 7 8
9 10 11 12
var cols = ["colA","colB"]
var aggFuncMap = Map("colC"-> "sum", "colD"-> "countDistinct")
var aggregatedDF = currentDF.groupBy(cols.head, cols.tail: _*).agg(aggFuncMap)
aggFuncMap
如
Map
仅,以便用户可以通过 JSON 配置传递任意数量的聚合。
sum
,
min
,
max
,
avg
和
count
.
countDistinct
(也许是因为它是 Camel 壳?)。
Exception in thread "main" org.apache.spark.sql.AnalysisException: Undefined function: 'countdistinct'. This function is neither a registered temporary function nor a permanent function registered in the database 'default'
最佳答案
当前无法使用 agg
与 countDistinct
里面Map
.来自 documentation我们看:
The available aggregate methods are avg, max, min, sum, count.
Map
到
Seq[Column]
,
val cols = Seq("colA", "colB")
val aggFuncs = Seq(sum("colC"), countDistinct("colD"))
val df2 = df.groupBy(cols.head, cols.tail: _*).agg(aggFuncs.head, aggFuncs.tail: _*)
expr
,此函数将评估一个字符串并返回一列。然而,
expr
不接受
"countDistinct"
, 而是
"count(distinct(...))"
需要使用。
val aggFuncs = Seq("sum(colC)", "count(distinct(colD))").map(e => expr(e))
val df2 = df.groupBy(cols.head, cols.tail: _*).agg(aggFuncs.head, aggFuncs.tail: _*)
关于scala - Spark 多个动态聚合函数,countDistinct 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55640686/
如何使用 Doctrine queryBuilder 为 countDistinct expr 设置别名? $qb->addSelect($qb->expr()->countDistinct('_ch
使用多个动态聚合操作在 Spark 数据帧上聚合。 我想使用具有多个动态聚合操作(由用户在 JSON 中传递)的 Scala 对 Spark 数据帧进行聚合。我正在将 JSON 转换为 Map . 下
我发现Factory类中的distinct函数只接受一个参数 public static AggregateFunction countDistinct(Field field); 并且没有像dist
我需要使用由 2 列分隔的窗口函数,并对第 3 列和第 4 列进行不同计数。我可以在没有任何问题的情况下进行计数,但是使用不同的计数会引发异常 - rg.apache.spark.sql.Analys
我想用 where 条件计算数据集中的不同值。 这是我所做的: CountDistinct(IIF(Fields!Status.Value = 1, Count(Fields!Id.Value),no
我想用 where 条件计算数据集中的不同值。 这是我所做的: CountDistinct(IIF(Fields!Status.Value = 1, Count(Fields!Id.Value),no
我正在尝试使用 Scala 聚合 Spark 数据框中的列,如下所示: import org.apache.spark.sql._ dfNew.agg(countDistinct("filtered"
我有以下代码 Criteria criteria = this.getCriteriaForClass(DeviceListItem.class); Projection rowCountProjec
我正在使用 Grails 1.2.4。我想知道如何按“countDistinct”(降序)和投影中的 groupProperty 进行排序。 这是我的域: class Transaction {
我有一个非常简单的数据框 df = spark.createDataFrame([(None,1,3),(2,1,3),(2,1,3)], ['a','b','c']) +----+---+-
编辑:我已经完全编辑了这篇文章,所以我的问题的新描述包括了所有细节,而不仅仅是我之前认为相关的内容。也许这个新描述将有助于解决我面临的问题。 我有两个实体类,Customer 和 CustomerGr
根据 DataBrick's blog,我尝试使用应该在 Spark 1.5 中可用的 countDistinct 函数.但是,我得到以下异常: Exception in thread "main"
我无法弄清楚如何表示以下 JPQL 查询: SELECT count(e) FROM Foo e 使用标准 API。我正在尝试的是: CriteriaBuilder cb = em.getCriter
我有一个 PySpark 数据框,我想对几列进行分组,然后计算一些列的总和并计算另一列的不同值。由于 countDistinct 不是内置的聚合函数,我不能使用像我在这里尝试的那样的简单表达式: su
Projections.distinct(Projections.count("objectId")) 和 Projections.countDistinct("objectId") 谁能告诉我它们之
我是一名优秀的程序员,十分优秀!