Condividi tramite


toTable (DataStreamWriter)

Avvia l'esecuzione della query di streaming e restituisce continuamente i risultati alla tabella specificata man mano che arrivano nuovi dati. Restituisce un oggetto StreamingQuery.

Sintassi

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

Parametri

Parametro Tipo Descrizione
tableName str Nome della tabella.
format str, facoltativo Formato utilizzato per salvare.
outputMode str, facoltativo Modalità di scrittura dei dati nel sink: append, completeo update.
partitionBy str o list, facoltativo Nomi delle colonne di partizionamento. Ignorato per le tabelle v2 già esistenti.
queryName str, facoltativo Nome univoco per la query.
**options
Tutte le altre opzioni stringa. Fornire un oggetto checkpointLocation per la maggior parte dei flussi.

Restituzioni

StreamingQuery

Note

Per le tabelle v1, partitionBy le colonne vengono sempre rispettate. Per le tabelle v2, partitionBy viene rispettato solo se la tabella non esiste ancora.

Examples

Salvare un flusso di dati in una tabella:

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")