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