我正在嘗試執行以下查詢:
finvInventoryAllDf
.groupBy("Site_siteId")
.agg(
collect_set(
array(
"InstalledOffer_applicationSource",
"InstalledOffer_standardStatus", "InstalledOffer_installedOfferId"
)
).as("array")
)
.withColumn("indicator", expr(transformExpr))
但是我得到一個錯誤,expr(transformExpr)
我試圖執行的 transformExpr 的值是:
val transformExpr = "transform(array, x -> array_contains(x, 'CIBASE') and array_contains(x, 'ACTIVE'))"
但是我收到錯誤訊息,->
上面的運算子中的輸入“>”是意外??的。
下面是控制臺日志的螢屏截圖:
我使用的scala版本是2.11.8,spark版本是3.17.2
uj5u.com熱心網友回復:
您命名了您的列之一array
,但array
它也是 Spark SQL 中的內置函式。
只需將您的列重命名為其他名稱,您的代碼就可以作業:
val transformExpr = "transform(ar, x -> array_contains(x, 'CIBASE') and array_contains(x, 'ACTIVE'))"
finvInventoryAllDf
.groupBy("Site_siteId")
.agg(
collect_set(
array(
"InstalledOffer_applicationSource",
"InstalledOffer_standardStatus", "InstalledOffer_installedOfferId"
)
).as("ar")
)
.withColumn("indicator", expr(transformExpr))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/504781.html