[ 
https://issues.apache.org/jira/browse/SPARK-58366?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wenchen Fan reassigned SPARK-58366:
-----------------------------------

    Assignee: Ganesha S

> [SQL] Support JSON_TABLE table-valued function
> ----------------------------------------------
>
>                 Key: SPARK-58366
>                 URL: https://issues.apache.org/jira/browse/SPARK-58366
>             Project: Spark
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 4.2.0
>            Reporter: Ganesha S
>            Assignee: Ganesha S
>            Priority: Major
>              Labels: pull-request-available
>
> Add the ANSI SQL:2016 JSON_TABLE table-valued function, which shreds a JSON 
> document into a relational table. A row path selects a sequence of JSON 
> items, and a COLUMNS clause projects a typed value out of each item into a 
> column.
> *Syntax (flat, non-nested subset):*
> {code:java}
>   JSON_TABLE(json_expr, row_path
>     COLUMNS (
>       col1 FOR ORDINALITY,
>       col2 <type> [PATH '<json_path>'],
>       col3 <type> EXISTS [PATH '<json_path>']
>     )
>     [ { NULL | ERROR } ON ERROR ]
>   ) [AS] alias{code}
>  
> *Capabilities:*
>  - Row path with a trailing [*] expands a JSON array into one row per element;
>   a non-wildcard path yields a single row for the matched value.
>  - FOR ORDINALITY: a 1-based BIGINT row counter.
>  - Value columns: extracted and cast to the declared type; the path may be
>   explicit (PATH '...') or implicit ('$.<columnName>').
>  - EXISTS columns: presence test, cast to the declared type. A 
> present-but-null
>   JSON value counts as existing; only an absent path is false.
>  - { NULL | ERROR }ON ERROR: NULL ON ERROR (the default) produces no rows on
>   null/malformed input; ERROR ON ERROR raises.
>  - Usable in a comma join and with LATERAL.
> *Motivation:*
> JSON_TABLE is the SQL-standard way to turn JSON into rows and columns and is 
> supported by Oracle, DB2, MySQL 8, PostgreSQL 17, Snowflake, and Trino. Spark 
> currently requires chaining from_json + explode/inline + get_json_object to 
> achieve the same result. JSON_TABLE folds that into one declarative, standard 
> construct and eases migration from those systems.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to