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.
SQL işlevini çağır. Spark Connect'i destekler.
Sözdizimi
from pyspark.sql import functions as dbf
dbf.call_function(funcName=<funcName>, *cols)
Parametreler
| Parametre | Türü | Description |
|---|---|---|
funcName |
str |
SQL tanımlayıcısı söz dizimini izleyen işlev adı (alıntı yapılabilir, nitelenebilir). |
cols |
pyspark.sql.Column veya str |
İşlevde kullanılacak sütun adları veya Sütunlar. |
İade
pyspark.sql.Column: yürütülen işlevin sonucu.
Örnekler
Örnek 1: Tamsayı sütunu olan bir işlevi çağırma
from pyspark.sql import functions as dbf
from pyspark.sql.types import IntegerType, StringType
df = spark.createDataFrame([(1, "a"),(2, "b"), (3, "c")],["id", "name"])
_ = spark.udf.register("intX2", lambda i: i * 2, IntegerType())
df.select(dbf.call_function("intX2", "id")).show()
+---------+
|intX2(id)|
+---------+
| 2|
| 4|
| 6|
+---------+
Örnek 2: Dize sütunuyla işlev çağırma
from pyspark.sql import functions as dbf
from pyspark.sql.types import StringType
df = spark.createDataFrame([(1, "a"),(2, "b"), (3, "c")],["id", "name"])
_ = spark.udf.register("strX2", lambda s: s * 2, StringType())
df.select(dbf.call_function("strX2", dbf.col("name"))).show()
+-----------+
|strX2(name)|
+-----------+
| aa|
| bb|
| cc|
+-----------+
Örnek 3: Yerleşik bir işlevi çağırma
from pyspark.sql import functions as dbf
df = spark.createDataFrame([(1, "a"),(2, "b"), (3, "c")],["id", "name"])
df.select(dbf.call_function("avg", dbf.col("id"))).show()
+-------+
|avg(id)|
+-------+
| 2.0|
+-------+
Örnek 4: Özel SQL işlevini çağırma
from pyspark.sql import functions as dbf
_ = spark.sql("CREATE FUNCTION custom_avg AS 'test.org.apache.spark.sql.MyDoubleAvg'")
df = spark.createDataFrame([(1, "a"),(2, "b"), (3, "c")],["id", "name"])
df.select(dbf.call_function("custom_avg", dbf.col("id"))).show()
+------------------------------------+
|spark_catalog.default.custom_avg(id)|
+------------------------------------+
| 102.0|
+------------------------------------+
Örnek 5: Tam ada sahip bir özel SQL işlevini çağırma
from pyspark.sql import functions as dbf
df = spark.createDataFrame([(1, "a"),(2, "b"), (3, "c")],["id", "name"])
df.select(dbf.call_function("spark_catalog.default.custom_avg", dbf.col("id"))).show()
+------------------------------------+
|spark_catalog.default.custom_avg(id)|
+------------------------------------+
| 102.0|
+------------------------------------+