toTable (DataStreamWriter)

Démarre l’exécution de la requête de diffusion en continu, en mettant continuellement les résultats dans la table donnée à mesure que de nouvelles données arrivent. Renvoie un objet StreamingQuery.

Syntaxe

toTable(tableName, format=None, outputMode=None, partitionBy=None, queryName=None, **options)

Paramètres

Paramètre Type Description
tableName str Nom de la table.
format str, facultatif Format utilisé pour enregistrer.
outputMode str, facultatif Comment les données sont écrites dans le récepteur : append, completeou update.
partitionBy str ou list, facultatif Noms des colonnes de partitionnement. Ignoré pour les tables v2 qui existent déjà.
queryName str, facultatif Nom unique de la requête.
**options
Toutes les autres options de chaîne. Fournissez la checkpointLocation plupart des flux.

Retours

StreamingQuery

Remarques

Pour les tables v1, partitionBy les colonnes sont toujours respectées. Pour les tables v2, partitionBy n’est respecté que si la table n’existe pas encore.

Exemples

Enregistrez un flux de données dans une table :

import tempfile
import time
_ = spark.sql("DROP TABLE IF EXISTS my_table2")
with tempfile.TemporaryDirectory(prefix="toTable") as d:
    q = spark.readStream.format("rate").option(
        "rowsPerSecond", 10).load().writeStream.toTable(
            "my_table2",
            queryName='that_query',
            outputMode="append",
            format='parquet',
            checkpointLocation=d)
    time.sleep(3)
    q.stop()
    spark.read.table("my_table2").show()
    _ = spark.sql("DROP TABLE my_table2")