MaxGekk opened a new pull request #27774: [SPARK-31023][SQL] Support foldable 
schemas by `from_json`
URL: https://github.com/apache/spark/pull/27774
 
 
   ### What changes were proposed in this pull request?
   In the PR, I propose to replace matching by `Literal` in 
`ExprUtils.evalTypeExpr()` to checking foldable property of the `schema` 
expression.
   
   ### Why are the changes needed?
   This should improve Spark SQL UX for `from_json`. Currently, Spark expects a 
string literal or `schema_of_json` w/ a string literal:
   ```sql
   spark-sql> select from_json('{"id":1, "city":"Moscow"}', replace('dpt_org_id 
INT, dpt_org_city STRING', 'dpt_org_', ''));
   Error in query: Schema should be specified in DDL format as a string literal 
or output of the schema_of_json function instead of replace('dpt_org_id INT, 
dpt_org_city STRING', 'dpt_org_', '');; line 1 pos 7
   ```
   
   ### Does this PR introduce any user-facing change?
   Yes, after the changes users can pass any foldable string expression as the 
`schema` parameter to `from_json()`. For the example above:
   ```sql
   spark-sql> select from_json('{"id":1, "city":"Moscow"}', replace('dpt_org_id 
INT, dpt_org_city STRING', 'dpt_org_', ''));
   {"id":1,"city":"Moscow"}
   ```
   
   ### How was this patch tested?
   Added new test to `JsonFunctionsSuite`.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

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

Reply via email to