ST_Aggr_Union
Two aggregated groups of polygons (blue and orange) and the resulting unioned polygons.

ST_Aggr_Union operates on a grouped DataFrame and returns the union of geometries in each group. All geometries are required to have the same type. For example, using ST_Aggr_Union with a column that has a mix of point, linestring, and polygon geometry types is undefined behavior. You can group your DataFrame using DataFrame.groupBy() or with a GROUP BY clause in a SQL statement.

To find the union of geometries in each record, use ST_Union.

FunctionSyntax
Pythonaggr_union(geometry)
SQLST_Aggr_Union(geometry)
ScalaaggrUnion(geometry)

For more details, go to the GeoAnalytics for Microsoft Fabric API reference for aggr_union.

Examples

PythonPythonSQLScala
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14

from geoanalytics_fabric.sql import functions as ST, Polygon

data = [
    (1, Polygon([[[5,5],[12,5],[12,10],[5,10],[5,5]]])),
    (1, Polygon([[[10,8],[14,8],[14,15],[10,15],[10,8]]])),
    (2, Polygon([[[6,8],[20,8],[20,20],[6,20],[6,8]]]))
]

df = spark.createDataFrame(data, ["id", "polygon"])

df.groupBy("id")\
  .agg(ST.aggr_union("polygon").alias("aggr_union"))\
  .show(truncate=False)
Result
Use dark colors for code blocksCopy
1
2
3
4
5
6
+---+-----------------------------------------------------------------------------+
|id |aggr_union                                                                   |
+---+-----------------------------------------------------------------------------+
|1  |{"rings":[[[5,5],[5,10],[10,10],[10,15],[14,15],[14,8],[12,8],[12,5],[5,5]]]}|
|2  |{"rings":[[[6,8],[20,8],[20,20],[6,20],[6,8]]]}                              |
+---+-----------------------------------------------------------------------------+

Version table

ReleaseNotes

1.0.0-beta

Python, SQL, and Scala functions introduced

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.