【发布时间】:2020-07-09 20:47:25
【问题描述】:
我正在尝试使用 SQL(Spark SQL 3.0,databricks runtime 7.0)从现有表创建新表。 我想将一个特定列的一些行聚合到新表中的一个 json 列中。
现有表
id, year, month, val
u_ced 2002 05 v_scyronc
u_ced 2002 05 v_ytbtbdv
u_ced 2002 05 v_utncasx
u_pny 2005 07 v_opcrgae
u_pny 2005 07 v_wytnecs
我需要一张像这样的新桌子
id, val_json
u_ced {{"shown": true, "val_id": "v_scyronc" },
{"shown": true, "val_id": "v_ytbtbdv" },
{"shown": true, "val_id": "v_utncasx" },
{"shown": true, "val_id": "v_opcrgae" },
{"shown": true, "val_id": "v_wytnecs" }
}}
u_pny {{"shown": true, "val_id": "v_opcrgae" },
{"shown": true, "val_id": "v_wytnecs" }
}}
我想我需要一个“分组依据”,但我不知道如何创建 json 列。
我试过了:
SELECT json_object(array_agg(id), array_agg(val))
但是,我得到了错误:
Error in SQL statement: AnalysisException: Undefined function: 'json_object'.
This function is neither a registered temporary function nor a permanent function registered in the database 'default'
希望任何人都可以帮助我解决这个问题。
谢谢
【问题讨论】:
-
检查您的 postgresql 版本,如建议的 here。我知道这不是您的主要问题,但消息错误在您的目标之前。
标签: mysql sql json apache-spark-sql