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

Hyukjin Kwon updated SPARK-61135:
---------------------------------
    Description: 
PySpark parses the JSON of GeometryType and GeographyType 
(_parse_datatype_json_value) by its patterns:
- bare "geometry" and "geography" are of SRID 4326
- "geography(SPHERICAL)" and "geography(OGC:CRS84, SPHERICAL)" are of SRID 4326
- a CRS is OGC:CRS84 or SRID:ANY, case-insensitively
- other forms, such as "geography(4326)", "geography(ANY)", "geometry(SRID:1)" 
and "geography(SRID:0,)", raise an error

The client rejects "geometry", "geography" and "geography(SPHERICAL)" with 
CANNOT_PARSE_DATATYPE. It also accepts 21 of the forms that PySpark rejects, 
such as "geography(4326)" as GeographyType(4326).

Apache Spark's test_geometry_json_serde and test_geography_json_serde fail on 
this client. The client should parse these forms as PySpark does.

PySpark's GeometryType and GeographyType also have the classmethods 
_from_crs(crs) and _from_crs(crs, alg) of this parsing, which Apache Spark's 
test_parity_geometrytype.py and test_parity_geographytype.py call; the client's 
types lack them.

  was:
PySpark parses the JSON of GeometryType and GeographyType 
(_parse_datatype_json_value) by its patterns:
- bare "geometry" and "geography" are of SRID 4326
- "geography(SPHERICAL)" and "geography(OGC:CRS84, SPHERICAL)" are of SRID 4326
- a CRS is OGC:CRS84 or SRID:ANY, case-insensitively
- other forms, such as "geography(4326)", "geography(ANY)", "geometry(SRID:1)" 
and "geography(SRID:0,)", raise an error

The client rejects "geometry", "geography" and "geography(SPHERICAL)" with 
CANNOT_PARSE_DATATYPE. It also accepts 21 of the forms that PySpark rejects, 
such as "geography(4326)" as GeographyType(4326).

Apache Spark's test_geometry_json_serde and test_geography_json_serde fail on 
this client. The client should parse these forms as PySpark does.


        Summary: Parse the JSON of GeometryType and GeographyType, such as bare 
geometry and geography(SPHERICAL), and add their _from_crs, in the Python 
client as PySpark does  (was: Parse the JSON of GeometryType and GeographyType, 
such as bare geometry and geography(SPHERICAL), in the Python client as PySpark 
does)

> Parse the JSON of GeometryType and GeographyType, such as bare geometry and 
> geography(SPHERICAL), and add their _from_crs, in the Python client as 
> PySpark does
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SPARK-61135
>                 URL: https://issues.apache.org/jira/browse/SPARK-61135
>             Project: Spark
>          Issue Type: Bug
>          Components: Connect
>    Affects Versions: connect-rust-4.3.0
>            Reporter: Hyukjin Kwon
>            Priority: Major
>             Fix For: connect-rust-4.3.0
>
>
> PySpark parses the JSON of GeometryType and GeographyType 
> (_parse_datatype_json_value) by its patterns:
> - bare "geometry" and "geography" are of SRID 4326
> - "geography(SPHERICAL)" and "geography(OGC:CRS84, SPHERICAL)" are of SRID 
> 4326
> - a CRS is OGC:CRS84 or SRID:ANY, case-insensitively
> - other forms, such as "geography(4326)", "geography(ANY)", 
> "geometry(SRID:1)" and "geography(SRID:0,)", raise an error
> The client rejects "geometry", "geography" and "geography(SPHERICAL)" with 
> CANNOT_PARSE_DATATYPE. It also accepts 21 of the forms that PySpark rejects, 
> such as "geography(4326)" as GeographyType(4326).
> Apache Spark's test_geometry_json_serde and test_geography_json_serde fail on 
> this client. The client should parse these forms as PySpark does.
> PySpark's GeometryType and GeographyType also have the classmethods 
> _from_crs(crs) and _from_crs(crs, alg) of this parsing, which Apache Spark's 
> test_parity_geometrytype.py and test_parity_geographytype.py call; the 
> client's types lack them.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

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

Reply via email to