メインコンテンツまでスキップ

ID「 」の「st_collect」

適用対象: 「はい」とマークされています Databricks Runtime 18 LTS 以降

備考

プレビュー

この機能は パブリック プレビュー段階です。

Geography または Geometry の値の配列を、単一のマルチポイント、マルチラインストリング、マルチポリゴン、またはジオメトリコレクションに収集します。

対応するDatabricks SQL 関数については、st_collect function を参照してください。

構文

Python
from pyspark.databricks.sql import functions as dbf

dbf.st_collect(col=<col>)

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または str

地理情報の値の配列、またはジオメトリの値の配列。

戻り値

pyspark.sql.ColumnGeographyまたはGeometry値、マルチポイント、マルチラインストリング、マルチポリゴン、またはジオメトリコレクションを表します。

入力配列内の None の値は無視されます。出力タイプは、Noneではない入力ジオメトリのタイプに依存します。

  • すべての非None要素が点である場合、マルチポイントを返します。
  • すべての非None要素がラインストリングの場合、マルチラインストリングを返します。
  • None以外のすべての要素がポリゴンの場合、マルチポリゴンを返します。
  • それ以外の場合は、ジオメトリコレクションを返します。

各出力には、None以外の配列要素ごとに1つの要素が含まれています。

マルチタイプ入力(マルチポイント、マルチラインストリング、マルチポリゴン)およびジオメトリコレクション入力は、結果のジオメトリコレクションの要素として保持されます;平坦化されません。

出力のSRID値は、「None」以外の入力ジオメトリの共通のSRID値です。

出力のディメンションは、非None入力ジオメトリの最大共通ディメンションです。

入力配列が空であるか、またはNone値のみが含まれる場合、2D空のジオメトリコレクションが返されます。この場合、出力の SRID は次のように決定されます。

  • 入力配列の要素型がGEOGRAPHY(ANY)の場合、出力のSRIDは4326となります。
  • 入力配列の要素型がGEOMETRY(ANY)の場合、出力のSRIDは0となります。
  • それ以外の場合、出力のSRIDは入力配列の要素型のものになります。

任意の2つの非None入力ジオメトリが異なるSRID値を持つ場合、関数はST_DIFFERENT_SRID_VALUESエラーを返します。

関数は入力がNoneの場合にNoneを返します。

点の配列を収集して、マルチポイントを構成します。

Python
from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as sf
df = spark.createDataFrame([('POINT(1 2)', 'POINT(3 4)')], ['wkt1', 'wkt2'])
df.select(dbf.st_astext(dbf.st_collect(sf.array(dbf.st_geomfromtext('wkt1'), dbf.st_geomfromtext('wkt2')))).alias('result')).collect()
Output
[Row(result='MULTIPOINT((1 2),(3 4))')]

ポリゴンの配列をマルチポリゴンにまとめます。

Python
from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as sf
df = spark.createDataFrame([('POLYGON((0 0,10 0,10 10,0 10,0 0))',)], ['wkt'])
df.select(dbf.st_astext(dbf.st_collect(sf.array(dbf.st_geomfromtext('wkt')))).alias('result')).collect()
Output
[Row(result='MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))')]

複数の種類のジオメトリをジオメトリコレクションに結合します。

Python
from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as sf
df = spark.createDataFrame([('POLYGON((0 0,10 0,10 10,0 10,0 0))', 'LINESTRING(1 2,3 4)')], ['wkt1', 'wkt2'])
df.select(dbf.st_astext(dbf.st_collect(sf.array(dbf.st_geomfromtext('wkt1'), dbf.st_geomfromtext('wkt2')))).alias('result')).collect()
Output
[Row(result='GEOMETRYCOLLECTION(POLYGON((0 0,10 0,10 10,0 10,0 0)),LINESTRING(1 2,3 4))')]

空の入力配列に対して2Dの空のジオメトリコレクションを返します。

Python
from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(dbf.st_astext(dbf.st_collect(sf.array())).alias('result')).collect()
Output
[Row(result='GEOMETRYCOLLECTION EMPTY')]

None入力に対して、Noneを返します。

Python
from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(dbf.st_collect(sf.lit(None)).alias('result')).collect()
Output
[Row(result=None)]
このページの見出し