Tag: aggregate functions

如何在某些单元格上使用CriteriaQuery SUM自定义操作?

考虑你有表T,字段A和B. 使用常规SQL,我可以这样做: SELECT SUM(A * (100.0 – B) / 100.0) AS D FROM T; 而且我会得到我所期望的。 但是,我不确定如何使用CriteriaQuery。 我知道如何对1个字段求和,但不知道如何在一行中的多个字段上对某些数学表达式求和。

从Apache Spark SQL中的用户定义聚合函数(UDAF)返回多个数组

我正在尝试使用Apache Spark SQL在Java中创建用户定义的聚合函数(UDAF),该函数在完成时返回多个数组。 我在网上搜索过,找不到任何关于如何做到这一点的例子或建议。 我能够返回单个数组,但无法弄清楚如何在evaluate()方法中以正确的格式获取数据以返回多个数组。 UDAF确实有效,因为我可以在evaluate()方法中打印出数组,我无法弄清楚如何将这些数组返回到调用代码(下面显示以供参考)。 UserDefinedAggregateFunction customUDAF = new CustomUDAF(); DataFrame resultingDataFrame = dataFrame.groupBy().agg(customUDAF.apply(dataFrame.col(“long_col”), dataFrame.col(“double_col”))).as(“processed_data”); 我在下面包含了整个自定义UDAF类,但关键方法是dataType()和evaluate方法(),它们首先显示。 任何帮助或建议将不胜感激。 谢谢。 public class CustomUDAF extends UserDefinedAggregateFunction { @Override public DataType dataType() { // TODO: Is this the correct way to return 2 arrays? return new StructType().add(“longArray”, DataTypes.createArrayType(DataTypes.LongType, false)) .add(“dataArray”, DataTypes.createArrayType(DataTypes.DoubleType, false)); } @Override public Object evaluate(Row buffer) […]