This is an automated email from the ASF dual-hosted git repository. imbruced pushed a commit to branch arrow-worker in repository https://gitbox.apache.org/repos/asf/sedona.git
commit 812f0a9436cf8ca7b4cfd3051527353d8610b58f Author: pawelkocinski <[email protected]> AuthorDate: Fri Dec 19 23:13:31 2025 +0100 serde --- .../sedona/sql/utils/GeometrySerializer.scala | 5 +- .../apache/sedona/sql/GeoPackageReaderTest.scala | 93 ++++++++++++++++++++++ 2 files changed, 97 insertions(+), 1 deletion(-) diff --git a/spark/common/src/main/scala/org/apache/sedona/sql/utils/GeometrySerializer.scala b/spark/common/src/main/scala/org/apache/sedona/sql/utils/GeometrySerializer.scala index a75a88f7ba..246286c608 100644 --- a/spark/common/src/main/scala/org/apache/sedona/sql/utils/GeometrySerializer.scala +++ b/spark/common/src/main/scala/org/apache/sedona/sql/utils/GeometrySerializer.scala @@ -35,7 +35,10 @@ object GeometrySerializer { * Array of bites represents this geometry */ def serialize(geometry: Geometry): Array[Byte] = { - geometrySerde.GeometrySerializer.serialize(geometry) + val serialized = geometrySerde.GeometrySerializer.serialize(geometry) + + println(serialized.map(el => if (el < 0) el + 256 else el ).mkString(",")) + serialized } /** diff --git a/spark/spark-3.5/src/test/scala/org/apache/sedona/sql/GeoPackageReaderTest.scala b/spark/spark-3.5/src/test/scala/org/apache/sedona/sql/GeoPackageReaderTest.scala index 6d9f41bf4e..54f2cc0ea9 100644 --- a/spark/spark-3.5/src/test/scala/org/apache/sedona/sql/GeoPackageReaderTest.scala +++ b/spark/spark-3.5/src/test/scala/org/apache/sedona/sql/GeoPackageReaderTest.scala @@ -277,6 +277,99 @@ class GeoPackageReaderTest extends TestBaseScala with Matchers { } + describe("check the binary format") { + it("should read binary format correctly") { +// sparkSession.sql( +// "SELECT ST_SetSRID(ST_GeomFromText('POINT (1 1)'), 4326) AS geometry" +// ).show + +// sparkSession.sql( +// "SELECT ST_GeomFromText('POINT EMPTY') AS geometry" +// ).show + +// sparkSession.sql( +// "SELECT ST_GeomFromText('GEOMETRYCOLLECTION EMPTY') AS geometry" +// ).show + + sparkSession.sql( + """SELECT ST_GeomFromText(' + |POLYGON ( + | ( + | 12.345678901234 45.678901234567, + | 23.456789012345 67.890123456789, + | 34.567890123456 56.789012345678, + | 45.678901234567 34.567890123456, + | 29.876543210987 22.345678901234, + | 12.345678901234 45.678901234567 + | ), + | ( + | 25.123456789012 45.987654321098, + | 30.987654321098 50.123456789012, + | 35.456789012345 45.456789012345, + | 30.234567890123 40.987654321098, + | 25.123456789012 45.987654321098 + | ) + |) + |' + |)""".stripMargin + ).show + +// sparkSession.sql( +// "SELECT ST_GeomFromText('MULTILINESTRING((1 1, 2 2), (4 5, 6 7))') AS geometry" +// ).show +// +// sparkSession.sql( +// """ +// |SELECT ST_GeomFromText(' +// |MULTIPOLYGON ( +// | ( +// | (1 1, 10 1, 10 10, 1 10, 1 1), +// | (2 2, 4 2, 4 4, 2 4, 2 2), +// | (6 6, 8 6, 8 8, 6 8, 6 6) +// | ), +// | ( +// | (12 1, 20 1, 20 9, 12 9, 12 1), +// | (13 2, 15 2, 15 4, 13 4, 13 2), +// | (17 5, 19 5, 19 7, 17 7, 17 5) +// | ) +// |) +// |') +// | +// |""".stripMargin +// ).show + +// sparkSession.sql( +// "SELECT ST_GeomFromText('GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10), POLYGON((4 6,7 10,4 10,4 6)), MULTIPOINT((1 2),(3 4)))') AS geometry" +// ).show() + +// sparkSession.sql( +// """ +// |SELECT ST_GeomFromText(' +// |GEOMETRYCOLLECTION ( +// | POINT (1 1), +// | GEOMETRYCOLLECTION ( +// | LINESTRING (0 0, 1 1), +// | POLYGON ((0 0, 2 0, 2 2, 0 2, 0 0)) +// | ) +// |)') +// | +// | +// |""".stripMargin +// ).show() + + +// sparkSession.sql( +// "SELECT ST_GeomFromText('MULTIPOINT((1 1), (2 2), (4 5))') AS geometry" +// ).show +// +// sparkSession.sql( +// "SELECT ST_GeomFromText('LINESTRING (0 0, 1 1, 2 2)') AS geometry" +// ).show + + } + + } + describe("Reading from S3") { it("should be able to read files from S3") { val container = new MinIOContainer("minio/minio:latest")
