適用対象:はい Databricks Runtime 18 LTS 以上![]()
Note
Databricks Runtime 18 は、Databricks Runtime 18.0、18.1、および 18.2 より新しいです。 以前に後の番号付きバージョンとして出荷されていた機能は、代わりに Databricks Runtime 18 の日付の更新プログラムとして出荷されるようになりました。 詳細については、「 統合リリース ノートについて」を参照してください。
Important
この機能は パブリック プレビュー段階です。
Geography または Geometry 値の配列を 1 つのマルチポイント、マルチライン文字列、マルチポリゴン、または geometry コレクションに収集します。
対応する Databricks SQL 関数については、 st_collect 関数を参照してください。
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_collect(col=<col>)
Parameters
| パラメーター | タイプ | Description |
|---|---|---|
col |
pyspark.sql.Column または str |
Geography 値の配列、または Geometry 値の配列。 |
返品
pyspark.sql.Column: Geography または Geometry 値。マルチポイント、マルチライン文字列、マルチポリゴン、または geometry コレクションを表します。
入力配列内のすべての None 値は無視されます。 出力の種類は、None 以外の入力ジオメトリの種類によって異なります。
-
None以外のすべての要素がポイントの場合は、マルチポイントを返します。 -
None以外のすべての要素が行文字列の場合は、複数行文字列を返します。 - すべての非
None要素が多角形の場合は、マルチポリゴンを返します。 - それ以外の場合は、geometry コレクションを返します。
各出力には、None 以外の配列要素ごとに 1 つの要素が含まれます。
マルチ型入力 (multipoint、multilinestring、multipolygon) と geometry コレクションの入力は、結果の geometry コレクションの要素として保持されます。フラット化されません。
出力の SRID 値は、None 以外の入力ジオメトリの共通の SRID 値です。
出力の寸法は、None 以外の入力ジオメトリの最大共通寸法です。
入力配列が空であるか、 None 値のみが含まれている場合は、2D 空の geometry コレクションが返されます。 この場合、出力の SRID は次のように決定されます。
- 入力配列の要素型が
GEOGRAPHY(ANY)場合、出力の SRID は4326。 - 入力配列の要素型が
GEOMETRY(ANY)場合、出力の SRID は0。 - それ以外の場合、出力の SRID は入力配列の要素型の SRID になります。
None以外の 2 つの入力ジオメトリに異なる SRID 値がある場合、この関数はST_DIFFERENT_SRID_VALUES エラーを発生させます。
入力がNone場合、この関数はNoneを返します。
Examples
ポイントの配列をマルチポイントに収集します。
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()
[Row(result='MULTIPOINT((1 2),(3 4))')]
多角形の配列をマルチポリゴンに収集します。
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()
[Row(result='MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))')]
混合ジオメトリの種類の配列を geometry コレクションに収集します。
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()
[Row(result='GEOMETRYCOLLECTION(POLYGON((0 0,10 0,10 10,0 10,0 0)),LINESTRING(1 2,3 4))')]
空の入力配列の 2D 空のジオメトリ コレクションを返します。
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()
[Row(result='GEOMETRYCOLLECTION EMPTY')]
None入力のNoneを返します。
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()
[Row(result=None)]