crea_tabella

Important

Questa funzionalità è in versione beta.

Usare la create_table() funzione in una pipeline per creare una tabella gestita, scritta da una o più dichiarazioni di append_flow . Associare la create_table() chiamata a uno o più @append_flow(target=...) elementi Decorator che scrivono nella tabella. Più flussi possono essere destinati alla stessa tabella gestita.

Per l'equivalente SQL, vedere CREATE TABLE ... FLOW.

Syntax

from pyspark import pipelines as dp

dp.create_table(
  name = "<table-name>",
  comment = "<comment>",
  spark_conf={"<key>" : "<value>", "<key>" : "<value>"},
  table_properties={"<key>" : "<value>", "<key>" : "<value>"},
  partition_cols=["<partition-column>", "<partition-column>"],
  path="<storage-location-path>",
  schema="schema-definition",
  expect_all = {"<key>" : "<value>", "<key>" : "<value>"},
  expect_all_or_drop = {"<key>" : "<value>", "<key>" : "<value>"},
  expect_all_or_fail = {"<key>" : "<value>", "<key>" : "<value>"},
  cluster_by = ["<clustering-column>", "<clustering-column>"],
  cluster_by_auto = False,
  row_filter = "row-filter-clause",
  private = False
)

Parameters

Parametro Tipo Descrizione
name str Required. Nome della tabella.
comment str Descrizione della tabella.
spark_conf dict Elenco delle configurazioni di Spark per l'esecuzione di questa query.
table_properties dict Un dict di proprietà della tabella relativo alla tabella.
partition_cols list Elenco di una o più colonne da utilizzare per il partizionamento della tabella.
path str Posizione di archiviazione per i dati della tabella. Se non è impostato, usare il percorso di archiviazione gestito per lo schema contenente la tabella.
schema str oppure StructType Definizione dello schema per la tabella. Gli schemi possono essere definiti come una stringa SQL DDL o con il linguaggio Python StructType.
expect_all, expect_all_or_drop, expect_all_or_fail dict Vincoli di qualità dei dati per la tabella. Fornisce lo stesso comportamento e utilizza la stessa sintassi delle funzioni decoratore di aspettative, ma implementato come parametro. Vedere Aspettative.
cluster_by list Abilitare il clustering liquido nella tabella e definire le colonne da usare come chiavi di clustering. Vedere Usare clustering liquido per le tabelle.
cluster_by_auto bool Abilitare il clustering liquido automatico nella tabella. Può essere combinato con cluster_by per definire le chiavi di clustering iniziali. Per ulteriori informazioni, vedere Clustering liquido automatico.
row_filter str (Anteprima pubblica) Clausola di filtro di riga per la tabella. Vedere Pubblicare tabelle con filtri di riga e maschere di colonna.
private bool Quando True, crea una tabella privata che non viene pubblicata nel catalogo ed è accessibile solo all'interno della pipeline. Di default è False.

Limitations

  • Le tabelle gestite non supportano i flussi di modifica di Change Data Capture (CDC). create_auto_cdc_flow() o create_auto_cdc_from_snapshot_flow() la destinazione di una tabella gestita ha esito negativo. Usare create_streaming_table() per le destinazioni CDC.
  • Le tabelle gestite supportano solo append_flow. I flussi di sostituzione (replace_flow / FLOW ... REPLACE WHERE) non sono supportati.
  • Le tabelle gestite sono supportate solo nelle pipeline con Il catalogo unity.
  • Non è possibile riutilizzare il nome di una tabella di streaming esistente per una tabella gestita.

Esempio

from pyspark import pipelines as dp

dp.create_table("combined")

@dp.append_flow(target="combined")
def from_a():
    return spark.readStream.table("source_a")

@dp.append_flow(target="combined")
def from_b():
    return spark.readStream.table("source_b")