Freigeben über


asTable

Konvertiert den DataFrame in ein TableArg Objekt, das als Tabellenargument in einem TVF (Table-Valued Function) verwendet werden kann, einschließlich UDTF (User-Defined Table Function).

Syntax

asTable()

Rückkehr

TableArg: Ein TableArg Objekt, das ein Tabellenargument darstellt.

Hinweise

Nach dem Abrufen eines TableArg aus einem DataFrame mit dieser Methode können Sie Partitionierung und Sortierung für das Tabellenargument angeben, indem Sie Methoden wie partitionBy, , orderByund withSinglePartition für die TableArg Instanz aufrufen.

Beispiele

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