簡體   English   中英

聚合函數 Spark SQL

[英]aggregate function Spark SQL

我正在使用 Pyspark 2.2 rn,我的代碼被這個函數崩潰了,我不明白為什么它會崩潰->

代碼

import Pyspark.sql.functions as F
t.withColumns('column_name',
              F.expr("aggregate(column, '', (acc, x) -> acc || concat(x, 4) ','))"))

錯誤,例如 - “外部輸入 '>' 期望 '所有 sql 函數'”

求你的幫助

三個建議。

  1. 刪除',')) :這些括號是不匹配的。

  2. 使用…||…concat(…,…) ; 兩者都不需要。

  3. 因為列表達式包含>並且列沒有別名,spark 試圖將表達式本身轉換為列名,但列名不能包含> ,正如 OP 的錯誤消息所暗示的那樣。

    解決方案:別名列。

    (見屏幕截圖。是的,屏幕截圖使用 spark SQL 而不是 pyspark,但 OP 的問題在於 pyspark 中的 spark SQL 片段。)

具有函數聚合的 Spark SQL 列必須具有別名

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM