Condividi tramite


COPY INTO

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Carica i dati da un percorso del file in una tabella Delta. Si tratta di un'operazione riprovabile e idempotente: i file nel percorso di origine che sono già stati caricati vengono ignorati. Questo vale anche se i file sono stati modificati dopo il caricamento. Per esempi, vedere Modelli di caricamento dei dati comuni usando COPY INTO.

Sintassi

COPY INTO target_table [ BY POSITION | ( col_name [ , <col_name> ... ] ) ]
  FROM { source_clause |
         ( SELECT expression_list FROM source_clause ) }
  FILEFORMAT = data_source
  [ VALIDATE [ ALL | num_rows ROWS ] ]
  [ FILES = ( file_name [, ...] ) | PATTERN = glob_pattern ]
  [ FORMAT_OPTIONS ( { data_source_reader_option = value } [, ...] ) ]
  [ COPY_OPTIONS ( { copy_option = value } [, ...] ) ]

source_clause
  source [ WITH ( [ CREDENTIAL { credential_name |
                                 (temporary_credential_options) } ]
                  [ ENCRYPTION (encryption_options) ] ) ]

Parametri

  • target_table

    Identifica una tabella Delta esistente. Il target_table non deve includere una specifica temporale o una specifica delle opzioni.

    Se il nome della tabella viene specificato sotto forma di posizione, ad esempio, delta.`/path/to/table` , Il catalogo unity può gestire l'accesso alle posizioni in cui viene scritto. È possibile scrivere in una posizione esterna in base a:

    • Definire la posizione come esterna e avere autorizzazioni WRITE FILES su quella posizione esterna.

    • Avere WRITE FILES autorizzazioni sulle credenziali di archiviazione specifiche che permettono di scrivere in un luogo usando: COPY INTO delta.`/some/location` WITH (CREDENTIAL <named-credential>)

    Per altri dettagli, vedere Connettersi all'archiviazione di oggetti cloud e ai servizi tramite il catalogo Unity.

  • BY POSITION | ( col_name [ , <col_name> ... ] )

    Trova la corrispondenza tra le colonne di origine e le colonne della tabella di destinazione in base alla posizione ordinale. La conversione di tipo delle colonne corrispondenti viene eseguita automaticamente.

    Questo parametro è supportato solo per il formato di file CSV senza intestazione. È necessario specificare FILEFORMAT = CSV. FORMAT_OPTIONS deve anche essere impostato su ("headers" = "false") (FORMAT_OPTIONS ("headers" = "false") è l'impostazione predefinita).

    Opzione di sintassi 1: BY POSITION

    • Corrisponde automaticamente le colonne di origine alle colonne della tabella di destinazione secondo la posizione ordinale.
      • La corrispondenza dei nomi predefinita non viene utilizzata per il confronto.
      • IDENTITY colonne e GENERATED colonne della tabella di destinazione sono ignorate durante il confronto con le colonne di origine.
      • Se il numero di colonne di origine non è uguale alle colonne della tabella di destinazione filtrate, COPY INTO genera un errore.

    Opzione di sintassi 2: ( col_name [ , <col_name> ... ] )

    • Trova la corrispondenza tra le colonne di origine e le colonne della tabella di destinazione specificate in base alla posizione ordinale relativa usando un elenco dei nomi di colonna della tabella di destinazione tra parentesi, separati da virgole.
      • L'ordine delle colonne della tabella originale e i nomi delle colonne non vengono usati per la corrispondenza.
      • IDENTITY colonne e GENERATED colonne non possono essere specificate nell'elenco dei nomi di colonne, altrimenti COPY INTO genera un errore.
      • Impossibile duplicare le colonne specificate.
      • Quando il numero di colonne di origine non è uguale alle colonne della tabella specificate, COPY INTO genera un errore.
      • Per le colonne non specificate nell'elenco dei nomi di colonna, COPY INTO assegna i valori predefiniti, se presenti, e assegna in NULL caso contrario. Se una colonna non è nullable, COPY INTO genera un errore.
  • source

    Percorso del file da cui caricare i dati. I file in questo percorso devono avere il formato specificato in FILEFORMAT. La posizione viene fornita sotto forma di URI.

    L'accesso al percorso di origine può essere fornito tramite:

    • credential_name

      Nome facoltativo delle credenziali usate per accedere o scrivere alla posizione di archiviazione. Questa credenziale viene usata solo se il percorso del file non è incluso in un percorso esterno. Vedere credential_name.

    • Credenziali temporanee in linea.

    • Definire l'ubicazione di origine come ubicazione esterna e disporre delle autorizzazioni READ FILES sull'ubicazione esterna attraverso il Catalogo Unity.

    • Utilizzo di una credenziale di archiviazione denominata con autorizzazioni READ FILES che forniscono l'autorizzazione per la lettura da una posizione tramite Unity Catalog.

    Non è necessario fornire credenziali inline o con nome se il percorso è già definito come un percorso esterno per cui si dispone delle autorizzazioni. Per altri dettagli, vedere Creare una posizione esterna per connettere l'archiviazione cloud ad Azure Databricks .

    Nota

    Se il percorso del file di origine è un percorso radice, aggiungere una barra (/) alla fine del percorso del file, s3://my-bucket/ad esempio .

    Le opzioni delle credenziali accettate sono:

    • AZURE_SAS_TOKEN per ADLS Gen2 e Blob Storage di Azure
    • AWS_ACCESS_KEY, AWS_SECRET_KEY, e AWS_SESSION_TOKEN per AWS S3

    Le opzioni di crittografia accettate sono:

    • TYPE = 'AWS_SSE_C', e MASTER_KEY per AWS S3

Vedere Caricare dati usando COPY INTO con credenziali temporanee.

  • SELECT expression_list

    Seleziona le colonne o le espressioni specificate dai dati di origine prima di copiare nella tabella Delta. Le espressioni possono essere qualsiasi cosa tu usi con le istruzioni SELECT, incluse le operazioni finestra. È possibile usare le espressioni di aggregazione solo per le aggregazioni globali. Non è possibile GROUP BY usare colonne con questa sintassi.

  • FILEFORMAT = data_source

    Formato dei file di origine da caricare. Uno di CSV, JSON, AVRO, ORC, PARQUET, TEXT, BINARYFILE.

  • VALIDATE

    Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 10.4 LTS e versioni successive

    I dati da caricare in una tabella vengono convalidati ma non scritti nella tabella. Queste convalide includono:

    • Indica se i dati possono essere analizzati.
    • Indica se lo schema corrisponde a quello della tabella o se lo schema deve essere evoluto.
    • Se tutti i vincoli di nullità e di controllo vengono soddisfatti.

    L'impostazione predefinita consiste nel convalidare tutti i dati da caricare. È possibile specificare una serie di righe da convalidare con la ROWS parola chiave , ad esempio VALIDATE 15 ROWS. L'istruzione COPY INTO restituisce un'anteprima dei dati di 50 righe o minore quando viene usato un numero minore di 50 con la ROWS parola chiave .

  • FILES

    Elenco di nomi di file da caricare, con un limite di 1000 file. Non può essere specificato con PATTERN.

  • PATTERN

    Modello GLOB che identifica i file da caricare dalla directory di origine. Non può essere specificato con FILES.

    Modello Descrizione
    ? Corrisponde a qualsiasi carattere singolo
    * Corrisponde a zero o più caratteri
    [abc] Trova la corrispondenza di un singolo carattere del set di caratteri {a,b,c}.
    [a-z] Trova la corrispondenza di un singolo carattere dall'intervallo di caratteri {a... z}.
    [^a] Trova la corrispondenza di un singolo carattere non incluso nel set di caratteri o nell'intervallo {a}. Si noti che il ^ carattere deve essere immediatamente a destra della parentesi aperta.
    {ab,cd} Abbina una stringa dall'insieme di stringhe {ab, cd}.
    {ab,c{de, fh}} Trova la corrispondenza di una stringa dal set di stringhe {ab, cde, cfh}.
  • FORMAT_OPTIONS

    Opzioni da passare al lettore dell'origine dati Apache Spark per il formato specificato. Vedere Opzioni di formato per ogni formato di file.

  • COPY_OPTIONS

    Opzioni per controllare l'operazione del COPY INTO comando.

    • force: booleano, valore predefinito false. Se impostato su true, l'idempotenza è disabilitata e i file vengono caricati indipendentemente dal fatto che siano stati caricati prima.
    • mergeSchema: booleano, valore predefinito false. Se impostato su true, lo schema può essere evoluto in base ai dati in ingresso.

Richiamare COPY INTO simultaneamente

COPY INTO supporta chiamate simultanee sulla stessa tabella. Ogni volta che COPY INTO viene richiamato simultaneamente su set distinti di file di input, ciascuna invocazione dovrebbe riuscire, altrimenti si verifica un conflitto di transazione. COPY INTO non deve essere richiamato simultaneamente per migliorare le prestazioni; un singolo COPY INTO comando con più file offre in genere prestazioni migliori rispetto all'esecuzione di comandi simultanei COPY INTO con un singolo file ciascuno. COPY INTO può essere chiamato simultaneamente quando:

  • Molteplici produttori di dati non riescono a coordinarsi tra loro e non possono effettuare una singola invocazione.
  • Una directory molto grande può essere incorporata una sottodirectory alla volta. Quando si inseriscono directory con un numero molto elevato di file, Databricks consiglia di usare il caricatore automatico quando possibile.

Accedere ai metadati dei file

Per informazioni su come accedere ai metadati per le origini dati basate su file, vedere Colonna metadati file.

Opzioni di formattazione

Opzioni generiche

Le opzioni seguenti si applicano a tutti i formati di file.

Opzione
ignoreCorruptFiles
Tipo: Boolean
Indica se ignorare i file danneggiati. Se true, i processi Spark continueranno a essere eseguiti quando si verificano file danneggiati e il contenuto letto verrà comunque restituito. Osservabile come numSkippedCorruptFiles nella
colonna operationMetrics della cronologia del Delta Lake. Disponibile in Databricks Runtime 11.3 LTS e versioni successive.
Valore predefinito: false
ignoreMissingFiles
Tipo: Boolean
Indica se ignorare i file mancanti. Se true, i processi Spark continueranno a essere eseguiti quando vengono rilevati file mancanti e il contenuto letto verrà comunque restituito. Disponibile in Databricks Runtime 11.3 LTS e versioni successive.
Valore predefinito: false per il caricatore automatico, true per COPY INTO (legacy)
modifiedAfter
Tipo: Timestamp String, per esempio, 2021-01-01 00:00:00.000000 UTC+0
Timestamp facoltativo per inserire file con un timestamp di modifica dopo il timestamp specificato.
Valore predefinito: Nessuno
modifiedBefore
Tipo: Timestamp String, per esempio, 2021-01-01 00:00:00.000000 UTC+0
Timestamp facoltativo per inserire file con un timestamp di modifica prima del timestamp specificato.
Valore predefinito: Nessuno
pathGlobFilter oppure fileNamePattern
Tipo: String
Un potenziale modello glob da fornire per la scelta dei file. Equivalente a
PATTERN in COPY INTO (versione precedente). fileNamePattern può essere usato in read_files.
Valore predefinito: Nessuno
recursiveFileLookup
Tipo: Boolean
Se saltare l'inferenza della partizione durante l'inferenza dello schema. Ciò non influisce sui file caricati.
Valore predefinito: false

Opzioni JSON

Opzione
allowBackslashEscapingAnyCharacter
Tipo: Boolean
Indica se consentire alle barre rovesciate di eseguire l'escape di qualsiasi carattere che abbia esito positivo. Se non è abilitata, solo i caratteri elencati in modo esplicito dalla specifica JSON possono essere preceduti da un carattere di escape.
Valore predefinito: false
allowComments
Tipo: Boolean
Indica se consentire o meno l'uso dei commenti di stile Java, C e C++ ('/', '*' e '//' ) all'interno del contenuto analizzato.
Valore predefinito: false
allowNonNumericNumbers
Tipo: Boolean
Indica se consentire il set di token non numerici (NaN) come valori numerici mobili legali.
Valore predefinito: true
allowNumericLeadingZeros
Tipo: Boolean
Indica se consentire ai numeri integrali di iniziare con zeli aggiuntivi (ignorabili), (ad esempio 000001).
Valore predefinito: false
allowSingleQuotes
Tipo: Boolean
Se consentire l'uso di virgolette singole (apostrofo, carattere '\') per quotare stringhe (nomi e valori di tipo String).
Valore predefinito: true
allowUnquotedControlChars
Tipo: Boolean
Indica se consentire alle stringhe JSON di contenere caratteri di controllo senza escape (caratteri ASCII con valore minore di 32, inclusi i caratteri di tabulazione e avanzamento riga) o meno.
Valore predefinito: false
allowUnquotedFieldNames
Tipo: Boolean
Indica se consentire l'uso di nomi di campo senza virgolette (consentiti da JavaScript, ma non dalla specifica JSON).
Valore predefinito: false
badRecordsPath
Tipo: String
Percorso per archiviare i file per registrare le informazioni sui record JSON non validi.
Valore predefinito: Nessuno
columnNameOfCorruptRecord
Tipo: String
Colonna per l'archiviazione di record malformati e non analizzabili. Se il parametro mode per il parsing è impostato su DROPMALFORMED, questa colonna sarà vuota.
Valore predefinito: _corrupt_record
dateFormat
Tipo: String
Formato per l'analisi delle stringhe di data.
Valore predefinito: yyyy-MM-dd
dropFieldIfAllNull
Tipo: Boolean
Indica se ignorare le colonne con tutti i valori nulli o gli array e le strutture vuoti durante l'inferenza dello schema.
Valore predefinito: false
encoding oppure charset
Tipo: String
Nome della codifica dei file JSON. Vedere java.nio.charset.Charset per l'elenco delle opzioni. Non è possibile usare UTF-16 e UTF-32 quando multiline è true.
Valore predefinito: UTF-8
inferTimestamp
Tipo: Boolean
Indica se provare a dedurre stringhe di timestamp come TimestampType. Se impostato su
true, l'inferenza dello schema potrebbe richiedere molto più tempo. È necessario abilitare cloudFiles.inferColumnTypes per l’uso con il caricatore automatico.
Valore predefinito: false
lineSep
Tipo: String
Una stringa tra due record JSON consecutivi.
Valore predefinito: nessuno, che copre \r, \r\n e \n
locale
Tipo: String
Un identificatore java.util.Locale. Influenza l'analisi predefinita di date, timestamp e numeri decimali all'interno del JSON.
Valore predefinito: US
mode
Tipo: String
Modalità del parser per la gestione di record malformati. Uno di 'PERMISSIVE',
'DROPMALFORMED', o 'FAILFAST'.
Valore predefinito: PERMISSIVE
multiLine
Tipo: Boolean
Indica se i record JSON si estendono su più righe.
Valore predefinito: false
prefersDecimal
Tipo: Boolean
Tenta di dedurre stringhe come DecimalType invece di tipo float o double, quando possibile. È anche necessario usare l'inferenza dello schema, abilitando
inferSchema o usando cloudFiles.inferColumnTypes con il caricatore automatico.
Valore predefinito: false
primitivesAsString
Tipo: Boolean
Indica se dedurre tipi primitivi come numeri e booleani come StringType.
Valore predefinito: false
readerCaseSensitive
Tipo: Boolean
Specifica il comportamento di distinzione tra maiuscole e minuscole quando rescuedDataColumn è abilitato. Se vero, recuperare le colonne di dati i cui nomi differiscono per quanto riguarda maiuscole e minuscole rispetto allo schema; in caso contrario, leggere i dati ignorando la distinzione tra maiuscole e minuscole. Disponibile in Databricks Runtime
13.3 e superiori.
Valore predefinito: true
rescuedDataColumn
Tipo: String
Indica se raccogliere tutti i dati che non possono essere analizzati a causa di una mancata corrispondenza del tipo di dati o dello schema (inclusa la distinzione tra maiuscole e minuscole) in una colonna separata. Questa colonna è inclusa per impostazione predefinita quando si usa il caricatore automatico. Per altre informazioni, vedere Che cos'è la colonna di dati salvata?
COPY INTO (legacy) non supporta la colonna di dati salvata perché non è possibile impostare manualmente lo schema usando COPY INTO. Databricks consiglia di usare il caricatore automatico per la maggior parte degli scenari di inserimento.
Valore predefinito: Nessuno
singleVariantColumn
Tipo: String
Indica se inserire l'intero documento JSON, analizzato in una singola colonna Variant con la stringa specificata come nome della colonna. Se disabilitati, i campi JSON verranno immessi nelle loro colonne.
Valore predefinito: Nessuno
timestampFormat
Tipo: String
Formato per l'analisi delle stringhe di timestamp.
Valore predefinito: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone
Tipo: String
Oggetto java.time.ZoneId da utilizzare durante l'analisi di timestamp e date.
Valore predefinito: Nessuno

Opzioni CSV

Opzione
badRecordsPath
Tipo: String
Percorso in cui archiviare i file per registrare le informazioni sui record CSV non validi.
Valore predefinito: Nessuno
charToEscapeQuoteEscaping
Tipo: Char
Carattere utilizzato per eseguire l'escape del carattere che serve a eludere le virgolette. Ad esempio, per i seguenti record [ " a\\", b ]:
  • Se il carattere di escape per '\' non è definito, il record non verrà interpretato. Il parser leggerà i caratteri: [a],[\],["],[,],[ ],[b] e genererà un errore perché non riesce a trovare un'virgoletta di chiusura.
  • Se il carattere da utilizzare come escape per il carattere '\' è definito come '\', il record verrà letto con 2 valori: [a\] e [b].

Valore predefinito: '\0'
columnNameOfCorruptRecord
Supportato per Auto Loader. Non supportato per COPY INTO (obsoleto).
Tipo: String
Colonna per l'archiviazione di record malformati e non analizzabili. Se il parametro mode per il parsing è impostato su DROPMALFORMED, questa colonna sarà vuota.
Valore predefinito: _corrupt_record
comment
Tipo: Char
Definisce il carattere che rappresenta un commento di riga quando viene trovato all'inizio di una riga di testo. Usare '\0' per disabilitare l'ignoramento dei commenti.
Valore predefinito: '\u0000'
dateFormat
Tipo: String
Formato per l'analisi delle stringhe di data.
Valore predefinito: yyyy-MM-dd
emptyValue
Tipo: String
Rappresentazione in forma di stringa di un valore di vuoto.
Valore predefinito: ""
encoding oppure charset
Tipo: String
Nome della codifica dei file CSV. Vederejava.nio.charset.Charset per l'elenco delle opzioni. UTF-16 e UTF-32 non possono essere usati quando multiline è true.
Valore predefinito: UTF-8
enforceSchema
Tipo: Boolean
Indica se applicare forzatamente lo schema specificato o dedotto ai file CSV. Se l'opzione è abilitata, le intestazioni dei file CSV vengono ignorate. Questa opzione viene ignorata per impostazione predefinita quando si usa il caricatore automatico per salvare i dati e consentire l'evoluzione dello schema.
Valore predefinito: true
escape
Tipo: Char
Carattere di escape da utilizzare durante l'analisi dei dati.
Valore predefinito: '\'
header
Tipo: Boolean
Indica se i file CSV contengono un'intestazione. Auto Loader presuppone che i file abbiano intestazioni quando si deduce lo schema.
Valore predefinito: false
ignoreLeadingWhiteSpace
Tipo: Boolean
Indica se ignorare gli spazi vuoti iniziali per ogni valore analizzato.
Valore predefinito: false
ignoreTrailingWhiteSpace
Tipo: Boolean
Indica se ignorare gli spazi vuoti finali per ogni valore analizzato.
Valore predefinito: false
inferSchema
Tipo: Boolean
Indica se dedurre i tipi di dati dei record CSV analizzati o assumere che tutte le colonne siano di StringType. Richiede un passaggio aggiuntivo sui dati se impostato su true. Per il caricatore automatico, usare cloudFiles.inferColumnTypes invece.
Valore predefinito: false
lineSep
Tipo: String
La stringa tra due record CSV consecutivi.
Valore predefinito: nessuno, che copre \r, \r\n e \n
locale
Tipo: String
Un identificatore java.util.Locale. Influenza l'interpretazione predefinita di data, timestamp e decimale all'interno del file CSV.
Valore predefinito: US
maxCharsPerColumn
Tipo: Int
Numero massimo di caratteri previsti da un valore da analizzare. Può essere usato per evitare errori di memoria. Il valore predefinito è -1, ovvero illimitato.
Valore predefinito: -1
maxColumns
Tipo: Int
Limite rigido del numero di colonne che un record può avere.
Valore predefinito: 20480
mergeSchema
Tipo: Boolean
Indica se dedurre lo schema tra più file e unire lo schema di ogni file. Abilitato per impostazione predefinita per il caricatore automatico durante l'inferenza dello schema.
Valore predefinito: false
mode
Tipo: String
Modalità parser per la gestione di record malformati. Uno di 'PERMISSIVE',
'DROPMALFORMED' e 'FAILFAST'.
Valore predefinito: PERMISSIVE
multiLine
Tipo: Boolean
Indica se i record CSV si estendono su più righe.
Valore predefinito: false
nanValue
Tipo: String
Rappresentazione di stringa di un valore non numerico durante l'analisi delle colonne FloatType e DoubleType.
Valore predefinito: "NaN"
negativeInf
Tipo: String
La rappresentazione testuale dell'infinito negativo per il parsing delle colonne FloatType o DoubleType.
Valore predefinito: "-Inf"
nullValue
Tipo: String
Rappresentazione in forma di stringa del valore null.
Valore predefinito: ""
parserCaseSensitive (deprecato)
Tipo: Boolean
Durante la lettura dei file, decidere se allineare le colonne dichiarate nell'intestazione con lo schema rispettando la distinzione tra maiuscole e minuscole. Questa è true l'impostazione predefinita per Auto Loader. Le colonne che differiscono per caso verranno salvate nel rescuedDataColumn se abilitato. Questa opzione è stata deprecata a favore di readerCaseSensitive.
Valore predefinito: false
positiveInf
Tipo: String
Rappresentazione testuale dell'infinito positivo quando si analizzano le colonne FloatType o DoubleType.
Valore predefinito: "Inf"
preferDate
Tipo: Boolean
Tenta di dedurre stringhe come date invece di timestamp, quando possibile. È anche necessario usare l'inferenza dello schema, abilitando inferSchema o usando
cloudFiles.inferColumnTypes con caricatore automatico.
Valore predefinito: true
quote
Tipo: Char
Carattere utilizzato per eseguire l'escape sui valori in cui il delimitatore di campo fa parte del valore.
Valore predefinito: "
readerCaseSensitive
Tipo: Boolean
Specifica il comportamento di distinzione tra maiuscole e minuscole quando rescuedDataColumn è abilitato. Se vero, recuperare le colonne di dati i cui nomi differiscono per maiuscole e minuscole rispetto allo schema; altrimenti, leggere i dati in modalità senza distinzione tra maiuscole e minuscole.
Valore predefinito: true
rescuedDataColumn
Tipo: String
Indica se raccogliere tutti i dati che non possono essere analizzati a causa di: mancata corrispondenza del tipo di dati e mancata corrispondenza dello schema (incluse le maiuscole) in una colonna separata. Questa colonna è inclusa per impostazione predefinita quando si usa il caricatore automatico. Per altri dettagli, fare riferimento a Che cos'è la colonna di dati salvata?.
COPY INTO (legacy) non supporta la colonna di dati salvata perché non è possibile impostare manualmente lo schema usando COPY INTO. Databricks consiglia di usare il caricatore automatico per la maggior parte degli scenari di inserimento.
Valore predefinito: Nessuno
sep oppure delimiter
Tipo: String
La stringa di separazione tra le colonne.
Valore predefinito: ","
skipRows
Tipo: Int
Numero di righe dall'inizio del file CSV che devono essere ignorate (incluse le righe commentate e vuote). Se header è vero, l'intestazione sarà la prima riga non ignorata e non commentata.
Valore predefinito: 0
timestampFormat
Tipo: String
Formato per l'analisi delle stringhe di timestamp.
Valore predefinito: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone
Tipo: String
Oggetto java.time.ZoneId da utilizzare durante l'analisi di timestamp e date.
Valore predefinito: Nessuno
unescapedQuoteHandling
Tipo: String
Strategia per la gestione delle virgolette non escape. Opzioni consentite:
  • STOP_AT_CLOSING_QUOTE: se nell'input vengono trovate virgolette senza caratteri di escape, accumulare il carattere di virgolette e continuare a analizzare il valore come valore tra virgolette, fino a quando non viene trovata una virgoletta di chiusura.
  • BACK_TO_DELIMITER: se nell'input vengono trovate virgolette non sfuggite, considerare il valore come non quotato. In questo modo il parser accumula tutti i caratteri del valore analizzato corrente fino a quando non viene trovato il delimitatore definito da sep. Se non viene trovato alcun delimitatore nel valore, il parser continuerà ad accumulare caratteri dall'input fino a quando non viene trovato un delimitatore o una terminazione di riga.
  • STOP_AT_DELIMITER: se nell'input vengono trovate virgolette senza caratteri di escape, considerare il valore come valore senza virgolette. In questo modo il parser accumula tutti i caratteri fino a quando il delimitatore definito da sep o una fine di riga viene trovata nell'input.
  • SKIP_VALUE: se nell'input vengono trovate virgolette senza caratteri di escape, il contenuto analizzato per il valore specificato verrà ignorato (finché non viene trovato il delimitatore successivo) e il valore impostato in nullValue verrà generato.
  • RAISE_ERROR: se nell'input si trovano virgolette non precedute da caratteri di escape,
    TextParsingException verrà lanciato.

Valore predefinito: STOP_AT_DELIMITER

Opzioni XML

Opzione Descrizione Scope
rowTag Etichetta di riga dei file XML da considerare come una riga. Nell'esempio XML <books> <book><book>...<books>, il valore appropriato è book. Si tratta di un'opzione obbligatoria. leggere
samplingRatio Definisce una frazione di righe utilizzate per l'inferenza dello schema. Le funzioni predefinite XML ignorano questa opzione. Impostazione predefinita: 1.0. leggere
excludeAttribute Indica se escludere gli attributi negli elementi. Impostazione predefinita: false. leggere
mode Modalità per gestire i record danneggiati durante l'analisi.
PERMISSIVE: per i record danneggiati, inserisce la stringa in formato non valido in un campo configurato da columnNameOfCorruptRecord e imposta i campi in formato non valido su null. Per mantenere i record danneggiati, è possibile impostare un campo di tipo string denominato columnNameOfCorruptRecord in uno schema definito dall'utente. Se il campo non è presente in uno schema, i record danneggiati vengono eliminati durante l'analisi. Quando si deduce uno schema, il parser aggiunge in modo implicito un campo columnNameOfCorruptRecord in uno schema di output.
DROPMALFORMED: ignora i record danneggiati. Questa modalità non è supportata per le funzioni predefinite XML.
FAILFAST: genera un'eccezione quando il parser incontra i record corrotti.
leggere
inferSchema Se true, tenta di dedurre un tipo appropriato per ogni colonna DataFrame risultante. Se false, tutte le colonne risultanti sono di tipo string. Impostazione predefinita:
true. Le funzioni predefinite XML ignorano questa opzione.
leggere
columnNameOfCorruptRecord Consente di rinominare il nuovo campo contenente una stringa in formato non valido creata dalla
modalità PERMISSIVE. Impostazione predefinita: spark.sql.columnNameOfCorruptRecord.
leggere
attributePrefix Prefisso per gli attributi per distinguere gli attributi dagli elementi. Questo sarà il prefisso per i nomi dei campi. Il valore predefinito è _. Può essere vuoto per la lettura del codice XML, ma non per la scrittura. lettura, scrittura
valueTag Tag utilizzato per i dati di tipo carattere all'interno di elementi che dispongono anche di attributi o elementi figli. L'utente può specificare il campo valueTag nello schema oppure verrà aggiunto automaticamente durante l'inferenza dello schema quando i dati di tipo carattere sono presenti in elementi con altri elementi o attributi. Impostazione predefinita: _VALUE lettura, scrittura
encoding Per la lettura, decodifica i file XML in base al tipo di codifica specificato. Per la scrittura, specifica la codifica (charset) dei file XML salvati. Le funzioni predefinite XML ignorano questa opzione. Impostazione predefinita: UTF-8. lettura, scrittura
ignoreSurroundingSpaces Definisce se gli spazi vuoti circostanti dai valori letti devono essere ignorati. Impostazione predefinita: true. I dati di tipo carattere che contengono solo spazi bianchi sono ignorati. leggere
rowValidationXSDPath Percorso di un file XSD facoltativo utilizzato per convalidare il codice XML per ogni riga singolarmente. Le righe che non riescono a convalidare vengono considerate come gli errori di analisi come sopra. L'XSD non influisce in caso contrario sullo schema fornito o dedotto. leggere
ignoreNamespace Se il true, i prefissi dei namespace sugli elementi e gli attributi XML vengono ignorati. I tag <abc:author> e <def:author>, ad esempio, vengono considerati come se entrambi siano solo <author>. I namespace non possono essere ignorati nell'elemento rowTag, solo nei suoi figli leggibili. L'analisi XML non è sensibile allo spazio dei nomi nemmeno se false. Impostazione predefinita: false. leggere
timestampFormat Stringa di formato timestamp personalizzata che segue il modello di formato datetime. Questo vale per il tipo timestamp. Impostazione predefinita: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. lettura, scrittura
timestampNTZFormat Stringa di formato personalizzata per timestamp privo di fuso orario che segue il formato del modello datetime. Questo vale per il tipo TimestampNTZType. Impostazione predefinita:
yyyy-MM-dd'T'HH:mm:ss[.SSS]
lettura, scrittura
dateFormat La stringa del formato di data personalizzato segue il formato del modello datetime. Questo vale per il tipo di data. Impostazione predefinita: yyyy-MM-dd. lettura, scrittura
locale Imposta una locale come tag di lingua in formato IETF BCP 47. Ad esempio, locale viene usato durante l'analisi di date e timestamp. Impostazione predefinita: en-US. leggere
rootTag Tag radice dei file XML. Per esempio, in <books> <book><book>...</books>, il valore appropriato è books. È possibile includere attributi di base specificando un valore come books foo="bar". Impostazione predefinita: ROWS. scrivere
declaration Contenuto della dichiarazione XML da scrivere all'inizio di ogni file XML di output, prima di rootTag. Ad esempio, un valore di foo causa la scrittura di <?xml foo?>. Impostare su una stringa vuota per sopprimere. Impostazione predefinita: version="1.0"
encoding="UTF-8" standalone="yes".
scrivere
arrayElementName Nome dell'elemento XML che racchiude ogni elemento di una colonna con valori di matrice durante la scrittura. Impostazione predefinita: item. scrivere
nullValue Imposta la rappresentazione in forma di stringa del valore null. Valore di default: stringa null. Quando si tratta di null, il parser non scrive attributi ed elementi per i campi. lettura, scrittura
compression Codice di compressione da usare per il salvataggio nel file. Può trattarsi di uno dei noti nomi abbreviati insensibili a maiuscole e minuscole (none, bzip2, gzip,lz4, snappy e
deflate). Le funzioni predefinite XML ignorano questa opzione. Impostazione predefinita: none.
scrivere
validateName Se true, genera un errore in caso di errore di convalida del nome dell'elemento XML. Ad esempio, i nomi dei campi SQL possono avere spazi, ma i nomi degli elementi XML non possono. Impostazione predefinita:
true.
scrivere
readerCaseSensitive Specifica il comportamento di distinzione tra maiuscole e minuscole quando rescuedDataColumn è abilitato. Se vero, recuperare le colonne di dati i cui nomi differiscono per maiuscole e minuscole rispetto allo schema; in caso contrario, leggere i dati senza distinzione tra maiuscole e minuscole. Impostazione predefinita: true. leggere
rescuedDataColumn Indica se raccogliere tutti i dati che non possono essere analizzati a causa di una discrepanza nel tipo di dati e nello schema (incluso il diverso uso di maiuscole e minuscole) in una colonna separata. Questa colonna è inclusa per impostazione predefinita quando si usa il caricatore automatico. Per altri dettagli, vedere Che cos'è la colonna di dati salvata?.
COPY INTO (legacy) non supporta la colonna di dati salvata perché non è possibile impostare manualmente lo schema usando COPY INTO. Databricks consiglia di usare il caricatore automatico per la maggior parte degli scenari di inserimento.
Impostazione predefinita: nessuna.
leggere

Opzioni PARQUET

Opzione
datetimeRebaseMode
Tipo: String
Controlla la ricalibrazione dei valori DATE e TIMESTAMP tra i calendari giuliano e gregoriano prolettico. Valori consentiti: EXCEPTION, LEGACY e
CORRECTED.
Valore predefinito: LEGACY
int96RebaseMode
Tipo: String
Controlla il ribasamento dei valori di timestamp INT96 tra i calendari giuliano e gregoriano prolettico. Valori consentiti: EXCEPTION, LEGACY e
CORRECTED.
Valore predefinito: LEGACY
mergeSchema
Tipo: Boolean
Indica se dedurre lo schema tra più file e unire lo schema di ogni file.
Valore predefinito: false
readerCaseSensitive
Tipo: Boolean
Specifica il comportamento di distinzione tra maiuscole e minuscole quando rescuedDataColumn è abilitato. Se vero, recuperare le colonne di dati i cui nomi differiscono per maiuscole e minuscole rispetto allo schema; in caso contrario, leggere i dati senza distinzione tra maiuscole e minuscole.
Valore predefinito: true
rescuedDataColumn
Tipo: String
Sia se raccogliere tutti i dati che non possono essere analizzati a causa di: discrepanze nel tipo di dati e nello schema (incluso il casing delle colonne) in una colonna separata. Questa colonna è inclusa per impostazione predefinita quando si usa il caricatore automatico. Per altri dettagli, fare riferimento a Che cos'è la colonna di dati salvata?.
COPY INTO (legacy) non supporta la colonna di dati salvata perché non è possibile impostare manualmente lo schema usando COPY INTO. Databricks consiglia di usare il caricatore automatico per la maggior parte degli scenari di inserimento.
Valore predefinito: Nessuno

Opzioni AVRO

Opzione
avroSchema
Tipo: String
Schema facoltativo fornito da un utente in formato Avro. Quando si legge Avro, questa opzione può essere impostata su uno schema evoluto, compatibile ma diverso con lo schema Avro effettivo. Lo schema di deserializzazione sarà coerente con lo schema evoluto. Ad esempio, se si imposta uno schema evoluto contenente una colonna aggiuntiva con un valore predefinito, il risultato di lettura conterrà anche la nuova colonna.
Valore predefinito: Nessuno
datetimeRebaseMode
Tipo: String
Controlla la conversione dei valori DATE e TIMESTAMP tra il calendario giuliano e il calendario gregoriano prolettico. Valori consentiti: EXCEPTION, LEGACY e
CORRECTED.
Valore predefinito: LEGACY
mergeSchema
Tipo: Boolean
Indica se dedurre lo schema tra più file e unire lo schema di ogni file.
mergeSchema per Avro non consente l'allentamento dei tipi di dati.
Valore predefinito: false
readerCaseSensitive
Tipo: Boolean
Specifica il comportamento di distinzione tra maiuscole e minuscole quando rescuedDataColumn è abilitato. Se è vero, recupera le colonne di dati i cui nomi differiscono per maiuscole e minuscole rispetto allo schema; in caso contrario, leggi i dati senza distinzione tra maiuscole e minuscole.
Valore predefinito: true
rescuedDataColumn
Tipo: String
Indica se raccogliere tutti i dati che non possono essere analizzati a causa di: mancata corrispondenza del tipo di dati e mancata corrispondenza dello schema (incluse le maiuscole) in una colonna separata. Questa colonna è inclusa per impostazione predefinita quando si usa il caricatore automatico.
COPY INTO (legacy) non supporta la colonna di dati salvata perché non è possibile impostare manualmente lo schema usando COPY INTO. Databricks consiglia di usare il caricatore automatico per la maggior parte degli scenari di inserimento.
Per altri dettagli, fare riferimento a Che cos'è la colonna di dati salvata?.
Valore predefinito: Nessuno

Opzioni BINARYFILE

I file binari non dispongono di opzioni di configurazione aggiuntive.

Opzioni TEXT

Opzione
encoding
Tipo: String
Nome della codifica dei file TEXT. Vedere java.nio.charset.Charset per l'elenco delle opzioni.
Valore predefinito: UTF-8
lineSep
Tipo: String
La stringa tra due TEXT record consecutivi.
Valore predefinito: nessuno, che copre \r, \r\n e \n
wholeText
Tipo: Boolean
Indica se leggere un file come singolo record.
Valore predefinito: false

Opzioni ORC

Opzione
mergeSchema
Tipo: Boolean
Indica se dedurre lo schema tra più file e unire lo schema di ogni file.
Valore predefinito: false