register (UDTFRegistration)

Registra un Python función de tabla definida por el usuario como una función de tabla SQL.

Sintaxis

register(name, f)

Parámetros

Parámetro Tipo Descripción
name str Nombre de la función de tabla definida por el usuario en instrucciones SQL.
f UserDefinedTableFunction Función de tabla definida por el usuario.

Devoluciones

UserDefinedTableFunction

Notas

Spark usa el tipo de valor devuelto de la función de tabla definida por el usuario determinada como el tipo de valor devuelto de la función registrada.

Para registrar una función de tabla no determinista Python, cree primero una función de tabla definida por el usuario no determinista y, a continuación, regístrela como una función SQL.

Ejemplos

from pyspark.sql.functions import udtf

@udtf(returnType="c1: int, c2: int")
class PlusOne:
    def eval(self, x: int):
        yield x, x + 1

spark.udtf.register(name="plus_one", f=PlusOne)
spark.sql("SELECT * FROM plus_one(1)").collect()
# [Row(c1=1, c2=2)]

# Use it with a lateral join.
spark.sql("SELECT * FROM VALUES (0, 1), (1, 2) t(x, y), LATERAL plus_one(x)").collect()
# [Row(x=0, y=1, c1=0, c2=1), Row(x=1, y=2, c1=1, c2=2)]