call_function

Volání funkce SQL Podporuje Spark Connect.

Syntaxe

from pyspark.sql import functions as dbf

dbf.call_function(funcName=<funcName>, *cols)

Parametry

Parameter Typ Description
funcName str Název funkce, který následuje za syntaxí identifikátoru SQL (lze uvozovat, může být kvalifikovaný).
cols pyspark.sql.Column nebo str Názvy sloupců nebo sloupce, které se mají použít ve funkci.

Návraty

pyspark.sql.Column: výsledek spuštěné funkce.

Examples

Příklad 1: Volání funkce s celočíselnou sloupcem

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|
+---------+

Příklad 2: Volání funkce se sloupcem řetězce

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|
+-----------+

Příklad 3: Volání integrované funkce

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|
+-------+

Příklad 4: Volání vlastní funkce SQL

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|
+------------------------------------+

Příklad 5: Volání vlastní funkce SQL s plně kvalifikovaným názvem

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|
+------------------------------------+