asTable

Mengonversi DataFrame menjadi TableArg objek, yang dapat digunakan sebagai argumen tabel di TVF ( fungsiTable-Valued) termasuk UDTF (User-Defined Fungsi Tabel).

Sintaksis

asTable()

Pengembalian Barang

TableArg: Objek TableArg yang mewakili argumen tabel.

Catatan

Setelah mendapatkan TableArg dari DataFrame menggunakan metode ini, Anda dapat menentukan partisi dan urutan untuk argumen tabel dengan memanggil metode seperti partitionBy, orderBy, dan withSinglePartition pada TableArg instans.

Examples

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