Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunun için geçerlidir:
Databricks Runtime 18 LTS ve üzerini denetleyin
Note
Databricks Runtime 18, Databricks Runtime 18.0, 18.1 ve 18.2'den daha yenidir. Daha önce daha sonra numaralandırılmış sürüm olarak gönderilecek özellikler artık databricks Runtime 18'e tarihli güncelleştirmeler olarak gönderilir. Ayrıntılar için bkz. Birleşik sürüm notları hakkında.
Important
Bu özellik Genel Önizleme aşamasındadır.
Coğrafya veya Geometri değerleri dizisini tek bir çok noktalı, çok satırlı, çok köşeli veya geometri koleksiyonunda toplar.
İlgili Databricks SQL fonksiyonu için bakınız st_collect fonksiyonu.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_collect(col=<col>)
Parameters
| Parametre | Türü | Description |
|---|---|---|
col |
pyspark.sql.Column veya str |
Coğrafya değerleri dizisi veya Geometri değerleri dizisi. |
İadeler
pyspark.sql.Column: Çok noktalı, çok satırlı, çok kutuplu veya geometri koleksiyonunu temsil eden Coğrafya veya Geometri değeri.
Giriş dizisindeki None değerlerinden herhangi biri es geçilir. Çıkışın türü, giriş olmayanNone geometrilerin türlerine bağlıdır:
- Öğe olmayan
Nonetüm öğeler nokta ise, çok noktalı bir değer döndürür. - Olmayan tüm
Noneöğeler linestrings ise, çok satırlı dize döndürür. - Olmayan tüm
Noneöğeler çokgense, çok kutuplu bir değer döndürür. - Aksi takdirde, bir geometri koleksiyonu döndürür.
Her çıkış, dizi olmayanNone öğe başına bir öğe içerir.
Çok tipli girişler (çok noktalı, çok satırlı, çok kutuplu) ve geometri koleksiyonu girişleri, sonuçta elde edilen geometri koleksiyonunun öğeleri olarak korunur; düz değildirler.
Çıkışın SRID değeri, giriş olmayanNone geometrilerin ortak SRID değeridir.
Çıkışın boyutu, giriş olmayanNone geometrilerin en büyük ortak boyutudur.
Giriş dizisi boşsa veya yalnızca None değerler içeriyorsa, 2B boş geometri koleksiyonu döndürülür. Bu durumda, çıkışın SRID'i aşağıdaki gibi belirlenir:
- Giriş dizisinin öğe türü ise
GEOGRAPHY(ANY), çıkışın SRID değeri olur4326. - Giriş dizisinin öğe türü ise
GEOMETRY(ANY), çıkışın SRID değeri olur0. - Aksi takdirde, çıkışın SRID değeri giriş dizisinin öğe türüdür.
Giriş olmayanNone iki geometri farklı SRID değerlerine sahipse işlev bir ST_DIFFERENT_SRID_VALUES hatası oluşturur.
İşlev, birinci parametre None ise None döndürür.
Examples
Bir nokta dizisini birden çok noktaya toplar.
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))')]
Bir çokgen dizisini çok kutuplu bir diziye toplar.
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)))')]
Karma geometri türlerinden oluşan bir diziyi geometri koleksiyonuna toplar.
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))')]
Boş bir giriş dizisi için 2B boş geometri koleksiyonunu döndürür.
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')]
Giriş None için döndürürNone.
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)]