Aller au contenu principal

asTable

Convertit le DataFrame en un objet TableArg, qui peut être utilisé comme argument de table dans une TVF (fonction à valeur de table), y compris une UDTF (fonction de table définie par l'utilisateur).

Syntaxe

asTable()

Renvoie

TableArg: Un objet TableArg représentant un argument de table.

Notes

Après avoir obtenu un TableArg d'un DataFrame à l'aide de cette méthode, vous pouvez spécifier le partitionnement et l'ordonnancement de l'argument de la table en appelant des méthodes telles que partitionBy, orderBy et withSinglePartition sur l'instance TableArg.

Exemples

Python
from pyspark.sql.functions import udtf

@udtf(returnType="id: int, doubled: int")
class DoubleUDTF:
def eval(self, row):
yield row["id"], row["id"] * 2

df = spark.createDataFrame([(1,), (2,), (3,)], ["id"])

result = DoubleUDTF(df.asTable())
result.show()
# +---+-------+
# | id|doubled|
# +---+-------+
# | 1| 2|
# | 2| 4|
# | 3| 6|
# +---+-------+

df2 = spark.createDataFrame(
[(1, "a"), (1, "b"), (2, "c"), (2, "d")], ["key", "value"]
)

@udtf(returnType="key: int, value: string")
class ProcessUDTF:
def eval(self, row):
yield row["key"], row["value"]

result2 = ProcessUDTF(df2.asTable().partitionBy("key").orderBy("value"))
result2.show()
# +---+-----+
# |key|value|
# +---+-----+
# | 1| a|
# | 1| b|
# | 2| c|
# | 2| d|
# +---+-----+