Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SEDONA-190] Prepare Sedona for 1.3.0 release #709

Merged
merged 3 commits into from
Nov 11, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
<img src="https://www.apache.org/logos/res/sedona/sedona.png" width="400">

**Are you a user / contributor / PPMC of Apache Sedona? Please fill in <a href="https://www.surveymonkey.com/r/CKP9RR7">this form</a> to participate in the <b>first ever Sedona online community call</b> on October 22, 2022!**


[![Scala and Java build](https://github.com/apache/incubator-sedona/actions/workflows/java.yml/badge.svg)](https://github.com/apache/incubator-sedona/actions/workflows/java.yml) [![Python build](https://github.com/apache/incubator-sedona/actions/workflows/python.yml/badge.svg)](https://github.com/apache/incubator-sedona/actions/workflows/python.yml) [![R build](https://github.com/apache/incubator-sedona/actions/workflows/r.yml/badge.svg)](https://github.com/apache/incubator-sedona/actions/workflows/r.yml) [![Example project build](https://github.com/apache/incubator-sedona/actions/workflows/example.yml/badge.svg)](https://github.com/apache/incubator-sedona/actions/workflows/example.yml) [![Docs build](https://github.com/apache/incubator-sedona/actions/workflows/docs.yml/badge.svg)](https://github.com/apache/incubator-sedona/actions/workflows/docs.yml)

Click [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/apache/incubator-sedona/HEAD?filepath=binder) and play the interactive Sedona Python Jupyter Notebook immediately!

[![](https://dcbadge.vercel.app/api/server/9A3k5dEBsY)](https://discord.gg/9A3k5dEBsY)

Apache Sedona™(incubating) is a cluster computing system for processing large-scale spatial data. Sedona equips cluster computing systems such as Apache Spark and Apache Flink with a set of out-of-the-box distributed Spatial Datasets and Spatial SQL that efficiently load, process, and analyze large-scale spatial data across machines.

Expand Down Expand Up @@ -47,7 +45,8 @@ Feedback to improve Apache Sedona: [Google Form](https://docs.google.com/forms/d

Twitter: [Sedona@Twitter](https://twitter.com/ApacheSedona)

Gitter chat: [![Gitter](https://badges.gitter.im/apache/sedona.svg)](https://gitter.im/apache/sedona?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![](https://dcbadge.vercel.app/api/server/9A3k5dEBsY)](https://discord.gg/9A3k5dEBsY)


[Sedona JIRA](https://issues.apache.org/jira/projects/SEDONA): Bugs, Pull Requests, and other similar issues

Expand Down
2 changes: 1 addition & 1 deletion docs-overrides/main.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<a href="{{ config.repo_url }}" title="{{ lang.t('source.link.title') }}" class="md-button">
Go to GitHub
</a>
<p>Are you a user / contributor / PPMC of Apache Sedona? Please fill in <a href="https://www.surveymonkey.com/r/CKP9RR7">this form</a> to participate in the <b>first ever Sedona online community call</b> on October 22, 2022!</p>
<p><a href="https://discord.gg/9A3k5dEBsY" target="_blank"><img src="https://dcbadge.vercel.app/api/server/9A3k5dEBsY" alt="Discord Shield"/></a></p>
</div>

<br><br><br>
Expand Down
4 changes: 2 additions & 2 deletions docs/community/contact.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ Feedback to improve Apache Sedona: [Google Form](https://docs.google.com/forms/d

[Apache Sedona@Twitter](https://twitter.com/ApacheSedona)

## Gitter chat
## Discord Server

[![Gitter](https://badges.gitter.im/apache/sedona.svg)](https://gitter.im/apache/sedona?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![](https://dcbadge.vercel.app/api/server/9A3k5dEBsY)](https://discord.gg/9A3k5dEBsY)

## Mailing list

Expand Down
144 changes: 59 additions & 85 deletions docs/community/publish.md

Large diffs are not rendered by default.

10 changes: 3 additions & 7 deletions docs/setup/compile.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,11 @@ To compile all modules, please make sure you are in the root folder of all modul

=== "Spark 3.0 + Scala 2.12"
```
mvn clean install -DskipTests -Dscala=2.12 -Dspark=3.0
mvn clean install -DskipTests -Dscala=2.12
```
=== "Spark 2.4 + Scala 2.11"
=== "Spark 3.0 + Scala 2.13"
```
mvn clean install -DskipTests -Dscala=2.11 -Dspark=2.4
```
=== "Spark 2.4 + Scala 2.12"
```
mvn clean install -DskipTests -Dscala=2.12 -Dspark=2.4
mvn clean install -DskipTests -Dscala=2.13
```

!!!tip
Expand Down
48 changes: 4 additions & 44 deletions docs/setup/maven-coordinates.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,38 +35,17 @@ The optional GeoTools library is required only if you want to use CRS transforma
</dependency>
```

=== "Spark 2.4 and Scala 2.11"
=== "Spark 3.0 and Scala 2.13"

```xml
<dependency>
<groupId>org.apache.sedona</groupId>
<artifactId>sedona-python-adapter-2.4_2.11</artifactId>
<artifactId>sedona-python-adapter-3.0_2.13</artifactId>
<version>{{ sedona.current_version }}</version>
</dependency>
<dependency>
<groupId>org.apache.sedona</groupId>
<artifactId>sedona-viz-2.4_2.11</artifactId>
<version>{{ sedona.current_version }}</version>
</dependency>
<!-- Optional: https://mvnrepository.com/artifact/org.datasyslab/geotools-wrapper -->
<dependency>
<groupId>org.datasyslab</groupId>
<artifactId>geotools-wrapper</artifactId>
<version>{{ sedona.current_geotools }}</version>
</dependency>
```

=== "Spark 2.4 and Scala 2.12"

```xml
<dependency>
<groupId>org.apache.sedona</groupId>
<artifactId>sedona-python-adapter-2.4_2.12</artifactId>
<version>{{ sedona.current_version }}</version>
</dependency>
<dependency>
<groupId>org.apache.sedona</groupId>
<artifactId>sedona-viz-2.4_2.12</artifactId>
<artifactId>sedona-viz-3.0_2.13</artifactId>
<version>{{ sedona.current_version }}</version>
</dependency>
<!-- Optional: https://mvnrepository.com/artifact/org.datasyslab/geotools-wrapper -->
Expand All @@ -77,6 +56,7 @@ The optional GeoTools library is required only if you want to use CRS transforma
</dependency>
```


!!! abstract "Sedona with Apache Flink"

=== "Flink 1.12+ and Scala 2.12"
Expand All @@ -99,26 +79,6 @@ The optional GeoTools library is required only if you want to use CRS transforma
<version>{{ sedona.current_geotools }}</version>
</dependency>
```
=== "Flink 1.12+ and Scala 2.11"

```xml
<dependency>
<groupId>org.apache.sedona</groupId>
<artifactId>sedona-python-adapter-3.0_2.11</artifactId>
<version>{{ sedona.current_version }}</version>
</dependency>
<dependency>
<groupId>org.apache.sedona</groupId>
<artifactId>sedona-flink_2.11</artifactId>
<version>{{ sedona.current_version }}</version>
</dependency>
<!-- Optional: https://mvnrepository.com/artifact/org.datasyslab/geotools-wrapper -->
<dependency>
<groupId>org.datasyslab</groupId>
<artifactId>geotools-wrapper</artifactId>
<version>{{ sedona.current_geotools }}</version>
</dependency>
```


#### SernetCDF 0.1.0
Expand Down
98 changes: 97 additions & 1 deletion docs/setup/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,107 @@
!!!warning
Support of Spark 2.X and Scala 2.11 will be removed in Sedona 1.3.0+ although some parts of the source code might still be compatible. Sedona 1.3.0+ will release binary for both Scala 2.12 and 2.13.

## Sedona 1.3.0

This version is a major release on Sedona 1.3.0 line and consists of 46 PRs. It includes many new functions, optimization and bug fixes.

### Highlights

- [X] Sedona on Spark in this release is compiled against Spark 3.3.
- [X] Sedona on Flink in this release is compiled against Flink 1.14.
- [X] Scala 2.11 support is removed.
- [X] Spark 2.X support is removed.
- [X] Python 3.10 support is added.
- [X] Aggregators in Flink are added
- [X] Correctness fixes for corner cases in range join and distance join.
- [X] Native GeoParquet read and write.
* `df = spark.read.format("geoparquet").option("fieldGeometry", "myGeometryColumn").load("PATH/TO/MYFILE.parquet")`
* `df.write.format("geoparquet").save("PATH/TO/MYFILE.parquet")`
- [X] DataFrame style API
* `df.select(ST_Point(min_value, max_value).as("point"))`
- [X] Allow WKT format CRS in ST_Transform
* `ST_Transform(geom, "srcWktString", "tgtWktString")`

```yaml

GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4326"]]

```

### Bug fixes

* [SEDONA-119](https://issues.apache.org/jira/browse/SEDONA-119) - ST_Touches join query returns true for polygons whose interiors intersect
* [SEDONA-136](https://issues.apache.org/jira/browse/SEDONA-136) - Enable testAsEWKT for Flink
* [SEDONA-137](https://issues.apache.org/jira/browse/SEDONA-137) - Fix ST_Buffer for Flink to work
* [SEDONA-138](https://issues.apache.org/jira/browse/SEDONA-138) - Fix ST_GeoHash for Flink to work
* [SEDONA-153](https://issues.apache.org/jira/browse/SEDONA-153) - Python Serialization Fails with Nulls
* [SEDONA-158](https://issues.apache.org/jira/browse/SEDONA-158) - Fix wrong description about ST_GeometryN in the API docs
* [SEDONA-169](https://issues.apache.org/jira/browse/SEDONA-169) - Fix ST_RemovePoint in accordance with the API document
* [SEDONA-178](https://issues.apache.org/jira/browse/SEDONA-178) - Correctness issue in distance join queries
* [SEDONA-182](https://issues.apache.org/jira/browse/SEDONA-182) - ST_AsText should not return SRID
* [SEDONA-186](https://issues.apache.org/jira/browse/SEDONA-186) - collecting result rows of a spatial join query with SELECT * fails with serde error
* [SEDONA-188](https://issues.apache.org/jira/browse/SEDONA-188) - Python warns about missing `jars` even when some are found

### New Features

* [SEDONA-94](https://issues.apache.org/jira/browse/SEDONA-94) - GeoParquet Support For Sedona
* [SEDONA-125](https://issues.apache.org/jira/browse/SEDONA-125) - Allows customized CRS in ST_Transform
* [SEDONA-166](https://issues.apache.org/jira/browse/SEDONA-166) - Provide Type-safe DataFrame Style API
* [SEDONA-168](https://issues.apache.org/jira/browse/SEDONA-168) - Add ST_Normalize to Apache Sedona
* [SEDONA-171](https://issues.apache.org/jira/browse/SEDONA-171) - Add ST_SetPoint to Apache Sedona


### Improvement

* [SEDONA-121](https://issues.apache.org/jira/browse/SEDONA-121) - Add equivalent constructors left over from Spark to Flink
* [SEDONA-132](https://issues.apache.org/jira/browse/SEDONA-132) - Create common module for SQL functions
* [SEDONA-133](https://issues.apache.org/jira/browse/SEDONA-133) - Allow user-defined schemas in Adapter.toDf()
* [SEDONA-139](https://issues.apache.org/jira/browse/SEDONA-139) - Fix wrong argument order in Flink unit tests
* [SEDONA-140](https://issues.apache.org/jira/browse/SEDONA-140) - Update Sedona Dependencies in R Package
* [SEDONA-143](https://issues.apache.org/jira/browse/SEDONA-143) - Add missing unit tests for the Flink predicates
* [SEDONA-144](https://issues.apache.org/jira/browse/SEDONA-144) - Add ST_AsGeoJSON to the Flink API
* [SEDONA-145](https://issues.apache.org/jira/browse/SEDONA-145) - Fix ST_AsEWKT to reserve the Z coordinate
* [SEDONA-146](https://issues.apache.org/jira/browse/SEDONA-146) - Add missing output funtions to the Flink API
* [SEDONA-147](https://issues.apache.org/jira/browse/SEDONA-147) - Add SRID functions to the Flink API
* [SEDONA-148](https://issues.apache.org/jira/browse/SEDONA-148) - Add boolean functions to the Flink API
* [SEDONA-149](https://issues.apache.org/jira/browse/SEDONA-149) - Add Python 3.10 support
* [SEDONA-151](https://issues.apache.org/jira/browse/SEDONA-151) - Add ST aggregators to Sedona Flink
* [SEDONA-152](https://issues.apache.org/jira/browse/SEDONA-152) - Add reader/writer functions for GML and KML
* [SEDONA-154](https://issues.apache.org/jira/browse/SEDONA-154) - Add measurement functions to the Flink API
* [SEDONA-157](https://issues.apache.org/jira/browse/SEDONA-157) - Add coordinate accessors to the Flink API
* [SEDONA-159](https://issues.apache.org/jira/browse/SEDONA-159) - Add Nth accessor functions to the Flink API
* [SEDONA-160](https://issues.apache.org/jira/browse/SEDONA-160) - Fix geoparquetIOTests.scala to cleanup after test
* [SEDONA-161](https://issues.apache.org/jira/browse/SEDONA-161) - Add ST_Boundary to the Flink API
* [SEDONA-162](https://issues.apache.org/jira/browse/SEDONA-162) - Add ST_Envelope to the Flink API
* [SEDONA-163](https://issues.apache.org/jira/browse/SEDONA-163) - Better handle of unsupported types in shapefile reader
* [SEDONA-164](https://issues.apache.org/jira/browse/SEDONA-164) - Add geometry count functions to the Flink API
* [SEDONA-165](https://issues.apache.org/jira/browse/SEDONA-165) - Upgrade Apache Rat to 0.14
* [SEDONA-170](https://issues.apache.org/jira/browse/SEDONA-170) - Add ST_AddPoint and ST_RemovePoint to the Flink API
* [SEDONA-172](https://issues.apache.org/jira/browse/SEDONA-172) - Add ST_LineFromMultiPoint to Apache Sedona
* [SEDONA-176](https://issues.apache.org/jira/browse/SEDONA-176) - Make ST_Contains conform with OGC standard, and add ST_Covers and ST_CoveredBy functions.
* [SEDONA-177](https://issues.apache.org/jira/browse/SEDONA-177) - Support spatial predicates other than INTERSECTS and COVERS/COVERED_BY in RangeQuery.SpatialRangeQuery and JoinQuery.SpatialJoinQuery
* [SEDONA-181](https://issues.apache.org/jira/browse/SEDONA-181) - Build fails with java.lang.IllegalAccessError: class org.apache.spark.storage.StorageUtils$
* [SEDONA-189](https://issues.apache.org/jira/browse/SEDONA-189) - Prepare geometries in broadcast join

### Task

* [SEDONA-150](https://issues.apache.org/jira/browse/SEDONA-150) - Drop Spark 2.4 and Scala 2.11 support


## Sedona 1.2.1

This version is a maintenance release on Sedona 1.2.0 line. It includes bug fixes.

Sedona on Spark is now compiled against Spark 3.3, instead of Spark 2.2.
Sedona on Spark is now compiled against Spark 3.3, instead of Spark 3.2.


### SQL (for Spark)
Expand Down
5 changes: 0 additions & 5 deletions flink/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,6 @@
</properties>

<dependencies>
<dependency>
<groupId>org.apache.sedona</groupId>
<artifactId>sedona-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.sedona</groupId>
<artifactId>sedona-core-${spark.compat.version}_${scala.compat.version}</artifactId>
Expand Down
12 changes: 6 additions & 6 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -161,12 +161,12 @@ extra:
- icon: fontawesome/brands/twitter
link: 'https://twitter.com/ApacheSedona'
sedona:
current_version: 1.2.1-incubating
current_git_tag: sedona-1.2.1-incubating-rc1
current_rc: 1.2.1-incubating-rc1
current_snapshot: 1.2.1-incubating-SNAPSHOT
next_version: 1.3.0-incubating
current_geotools: 1.1.0-25.2
current_version: 1.3.0-incubating
current_git_tag: sedona-1.3.0-incubating-rc1
current_rc: 1.3.0-incubating-rc1
current_snapshot: 1.3.0-incubating-SNAPSHOT
next_version: 1.3.1-incubating
current_geotools: 1.3.0-27.2
copyright: Copyright © 2022 The Apache Software Foundation
markdown_extensions:
- admonition
Expand Down
5 changes: 0 additions & 5 deletions sql/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,6 @@
</properties>

<dependencies>
<dependency>
<groupId>org.apache.sedona</groupId>
<artifactId>sedona-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.sedona</groupId>
<artifactId>sedona-core-${spark.compat.version}_${scala.compat.version}</artifactId>
Expand Down
16 changes: 4 additions & 12 deletions sql/src/main/scala/org/apache/sedona/sql/UDF/Catalog.scala
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,12 @@
package org.apache.sedona.sql.UDF

import org.apache.spark.sql.catalyst.FunctionIdentifier
import org.apache.spark.sql.catalyst.expressions.{ExpectsInputTypes, Expression, ExpressionInfo}
import org.apache.spark.sql.catalyst.expressions.Literal
import org.apache.spark.sql.catalyst.analysis.FunctionRegistry.FunctionBuilder
import org.apache.spark.sql.expressions.{Aggregator, UserDefinedAggregateFunction}
import org.apache.spark.sql.sedona_sql.expressions.{ST_YMax, ST_YMin, _}
import org.apache.spark.sql.catalyst.expressions.{ExpectsInputTypes, Expression, ExpressionInfo, Literal}
import org.apache.spark.sql.expressions.Aggregator
import org.apache.spark.sql.sedona_sql.expressions.collect.{ST_Collect, ST_CollectionExtract}
import org.apache.spark.sql.sedona_sql.expressions.raster.{RS_Add, RS_Append, RS_Array, RS_Base64, RS_BitwiseAnd, RS_BitwiseOr, RS_Count, RS_Divide, RS_FetchRegion, RS_GetBand, RS_GreaterThan, RS_GreaterThanEqual, RS_HTML, RS_LessThan, RS_LessThanEqual, RS_LogicalDifference, RS_LogicalOver, RS_Mean, RS_Mode, RS_Modulo, RS_Multiply, RS_MultiplyFactor, RS_Normalize, RS_NormalizedDifference, RS_SquareRoot, RS_Subtract}
import org.apache.spark.sql.sedona_sql.expressions.raster._
import org.apache.spark.sql.sedona_sql.expressions._
import org.locationtech.jts.geom.Geometry
import org.locationtech.jts.operation.buffer.BufferParameters

Expand Down Expand Up @@ -169,13 +168,6 @@ object Catalog {
new ST_Intersection_Aggr
)

import org.apache.spark.sql.sedona_sql.expressions_udaf
val aggregateExpressions_UDAF: Seq[UserDefinedAggregateFunction] = Seq(
new expressions_udaf.ST_Union_Aggr,
new expressions_udaf.ST_Envelope_Aggr,
new expressions_udaf.ST_Intersection_Aggr
)

private def function[T <: Expression : ClassTag](defaultArgs: Any *): FunctionDescription = {
val classTag = implicitly[ClassTag[T]]
val constructor = classTag.runtimeClass.getConstructor(classOf[Seq[Expression]])
Expand Down
Loading