相关疑难解决方法(0)

pyspark 中的 first_value 窗口函数

我正在使用 pyspark 1.5 从 Hive 表中获取数据并尝试使用窗口函数。

根据存在所谓的解析函数firstValue,这将使我定的窗口的第一个非空值。我知道这存在于 Hive 中,但我无法在 pyspark 的任何地方找到它。

鉴于 pyspark 不允许 UserDefinedAggregateFunctions (UDAF),有没有办法实现这一点?

window-functions apache-spark apache-spark-sql pyspark

5
推荐指数
1
解决办法
1万
查看次数

窗口函数的默认窗口框架是什么

运行以下代码:

val sales = Seq(
  (0, 0, 0, 5),
  (1, 0, 1, 3),
  (2, 0, 2, 1),
  (3, 1, 0, 2),
  (4, 2, 0, 8),
  (5, 2, 2, 8))
  .toDF("id", "orderID", "prodID", "orderQty")

val orderedByID = Window.orderBy('id)

val totalQty = sum('orderQty).over(orderedByID).as('running_total)
val salesTotalQty = sales.select('*, totalQty).orderBy('id)
salesTotalQty.show
Run Code Online (Sandbox Code Playgroud)

结果是:

+---+-------+------+--------+-------------+
| id|orderID|prodID|orderQty|running_total|
+---+-------+------+--------+-------------+
|  0|      0|     0|       5|            5|
|  1|      0|     1|       3|            8|
|  2|      0|     2|       1|            9|
|  3|      1|     0|       2|           11|
|  4|      2|     0| …
Run Code Online (Sandbox Code Playgroud)

sql window-functions apache-spark apache-spark-sql

5
推荐指数
1
解决办法
1885
查看次数