You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Chao Sun (Jira)" <ji...@apache.org> on 2026/06/23 00:16:00 UTC
[jira] [Created] (SPARK-57626) Extend shared get_json_object parsing to nested named paths
Chao Sun created SPARK-57626:
--------------------------------
Summary: Extend shared get_json_object parsing to nested named paths
Key: SPARK-57626
URL: https://issues.apache.org/jira/browse/SPARK-57626
Project: Spark
Issue Type: Improvement
Components: SQL
Affects Versions: 4.3.0
Reporter: Chao Sun
Assignee: Chao Sun
SPARK-47670 introduced opt-in shared parsing for repeated get_json_object calls over the same JSON input. Its implementation intentionally shares only simple top-level fields, so repeated literal nested object paths still parse the input independently.
For example:
{code:sql}
SELECT
get_json_object(json, '$.payload.user.id') AS user_id,
get_json_object(json, '$.payload.user.name') AS user_name,
get_json_object(json, '$.payload.request_id') AS request_id
FROM events
{code}
With spark.sql.optimizer.getJsonObjectSharedParsing.enabled=true, these prefix-free named paths should be extracted in one streaming scan without requiring any query changes.
The follow-up should preserve the existing get_json_object behavior for malformed input, duplicate keys, nulls, and rendering failures. An ancestor and its descendant must not share the same parse, because each requested path needs independent legacy semantics. Dynamic paths, wildcards, array subscripts, and excessively deep paths should continue using the existing evaluation.
This is distinct from SPARK-53764, which collapses nested get_json_object function calls rather than sharing sibling paths over the same input.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org