1
我想使用列名稱數組作爲輸入來聚合Spark數據框,並同時保留列的原始名稱。使用列名稱數組聚合Spark數據框,保留名稱
df.groupBy($"id").sum(colNames:_*)
這個工程,但未能保留名稱。通過回答啓發發現here我unsucessfully嘗試這樣做:
df.groupBy($"id").agg(sum(colNames:_*).alias(colNames:_*))
error: no `: _*' annotation allowed here
它可以採取像
df.groupBy($"id").agg(sum(colNames(2)).alias(colNames(2)))
單個元素如何才能做到這一點整個陣列?
是的,我猜會是這樣的。但是,仍然無法實現它的工作。錯誤:沒有':_ *'註釋允許在這裏 (這樣的註釋只允許在*參數的參數中) – johnblund
對不起,它應該是agg和sum。 – zero323
是的,我也發現colNames實際上應該是exprs,對吧? – johnblund