Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime
Gibt einen Strukturwert mit csvStr und schema zurück.
Syntax
from_csv(csvStr, schema [, options])
Argumente
-
csvStr: Ein STRING-Ausdruck, der eine Zeile mit CSV-Daten angibt. -
schema: Ein STRING-Literal oder ein Aufruf der Funktionschema_of_csv. -
options: Ein optionales MAP<STRING,STRING>-Literal, das Anweisungen angibt.
Gibt zurück
Eine Struktur mit Feldnamen und Typen wird zurückgegeben, die mit der Schemadefinition übereinstimmen.
csvStr sollte in Bezug auf schema und options ordnungsgemäß formatiert sein.
schema muss als Spaltenname/Datentyp-Paare mit Kommas als Trennzeichen definiert werden, z. B wie in CREATE TABLE.
options kann Folgendes sein (sofern angegeben):
-
sep(Standardwert ist,): Hiermit wird eine Trennlinie für jedes Feld und jeden Wert festgelegt. Diese Trennlinie kann aus einem oder mehreren Zeichen bestehen. -
encoding(Standardformat ist UTF-8): Hiermit werden die CSV-Dateien entsprechend des angegebenen Codierungstyps decodiert. -
quote(Standardwert ist"): Hiermit wird ein einzelnes Zeichen festgelegt, das als Escapezeichen für Werte in Anführungszeichen verwendet wird, wobei die Trennlinie Teil des Werts sein kann. Wenn Sie die Anführungszeichen deaktivieren möchten, müssen Sie nicht NULL, sondern eine leere Zeichenfolge angeben. Dieses Verhalten unterscheidet sich voncom.databricks.spark.csv. -
escape(Standardwert ist\): Hiermit wird ein einzelnes Zeichen festgelegt, das als Escapezeichen für Anführungszeichen verwendet wird, die sich innerhalb eines bereits in Anführungszeichen eingeschlossenen Werts befinden. -
charToEscapeQuoteEscaping(Standardwert istescapeoder\0): Hiermit wird ein einzelnes Zeichen festgelegt, das als Escapezeichen des Anführungszeichens verwendet wird. Der Standardwert ist ein Escapezeichen, wenn sich dieescape- undquote-Zeichen unterscheiden, andernfalls lautet er\0. -
comment(Leere Standardzeichenfolge): Hiermit wird ein einzelnes Zeichen festgelegt, das zum Überspringen von Zeilen verwendet wird, die mit diesem Zeichen beginnen. Sie ist standardmäßig deaktiviert. - Header (Standardwert ist
false): Hiermit wird die erste Zeile als Spaltennamen verwendet. -
enforceSchema(Standardwert isttrue): Wenn diese Option auf „True“ festgelegt ist, wird das angegebene oder abgeleitete Schema zwangsweise auf Datenquellendateien angewendet, und Header in CSV-Dateien werden ignoriert. Wenn diese Option auf „False“ festgelegt ist, wird das Schema anhand aller Header in CSV-Dateien überprüft, falls die Headeroption auf „True“ festgelegt ist. Feldnamen im Schema und in den Spaltennamen in CSV-Headern werden anhand ihrer Positionen unter Berücksichtigung vonspark.sql.caseSensitiveüberprüft. Obwohl der Standardwert „True“ ist, wird empfohlen, die Option „enforceSchema“ zu deaktivieren, um falsche Ergebnisse zu vermeiden. -
inferSchema(Standardwert istfalse): Hiermit wird das Eingabeschema automatisch aus Daten abgeleitet. Es ist eine zusätzliche Übergabe der Daten erforderlich. -
samplingRatio(Standardwert ist 1.0): Hiermit wird der Anteil der Zeilen definiert, die beim Schemarückschließen verwendet werden. -
ignoreLeadingWhiteSpace(Standardwert istfalse): Dies ist ein Flag, das angibt, ob vorangestellte Leerzeichen von zu lesenden Werten übersprungen werden sollen. -
ignoreTrailingWhiteSpace(Standardwert istfalse): Dies ist ein Flag, das angibt, ob nachstehende Leerzeichen von zu lesenden Werten übersprungen werden sollen. -
nullValue(Standardwert ist eine leere Zeichenfolge): Hiermit wird die Zeichenfolgendarstellung eines NULL-Werts festgelegt. -
emptyValue(Standardwert ist eine leere Zeichenfolge): Hiermit wird die Zeichenfolgendarstellung eines leeren Werts festgelegt. -
nanValue(Standardwert istNaN): Hiermit wird die Zeichenfolgendarstellung eines Werts festgelegt, der keine Zahl ist. -
positiveInf(Standardwert istInf): Hiermit wird die Zeichenfolgendarstellung eines positiven Unendlichkeitswerts festgelegt. -
negativeInf(Standardwert ist-Inf)): Hiermit wird die Zeichenfolgendarstellung eines negativen Unendlichkeitswerts festgelegt. -
dateFormat(Standardformatyyyy-MM-dd): Hiermit wird die Zeichenfolge festgelegt, die ein Datumsformat angibt. Benutzerdefinierte Datumsformate folgen den Formaten im Artikel zu datetime-Mustern. Dies gilt für den date-Typ. -
timestampFormat(Standardformatyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): Hiermit wird die Zeichenfolge festgelegt, die ein Zeitstempelformat angibt. Benutzerdefinierte Datumsformate folgen den Formaten im Artikel zu datetime-Mustern. Dies gilt für den timestamp-Typ. -
maxColumns(Standardwert ist20480): Hiermit wird eine feste Obergrenze für die Anzahl der Spalten definiert, die ein Datensatz enthalten kann. -
maxCharsPerColumn(Standardwert ist „-1“): Hiermit wird die maximale Anzahl der Zeichen definiert, die für jeden angegebenen zu lesenden Wert zulässig sind. Der Standardwert ist „-1“, d. h. die Länge ist unbegrenzt. -
unescapedQuoteHandling(Standardwert istSTOP_AT_DELIMITER): Hiermit wird definiert, wie der CSV-Parser Werte mit Anführungszeichen ohne Escapezeichen verarbeitet.-
STOP_AT_CLOSING_QUOTE: Wenn in der Eingabe Anführungszeichen ohne Escapezeichen erkannt werden, wird das Anführungszeichen akkumuliert und der Wert als Anführungszeichenwert analysiert, bis ein schließendes Anführungszeichen gefunden wird. -
BACK_TO_DELIMITER: Wenn in der Eingabe Anführungszeichen ohne Escapezeichen erkannt werden, wird der Wert als ein Wert ohne Anführungszeichen betrachtet. Der Parser akkumuliert dann alle Zeichen des aktuellen analysierten Werts, bis das Trennzeichen erkannt wird. Wenn im Wert kein Trennzeichen gefunden wird, akkumuliert der Parser weiter Zeichen aus der Eingabe, bis ein Trennzeichen oder Zeilenende gefunden wird. -
STOP_AT_DELIMITER: Wenn in der Eingabe Anführungszeichen ohne Escapezeichen erkannt werden, wird der Wert als ein Wert ohne Anführungszeichen betrachtet. Der Parser akkumuliert dann alle Zeichen, bis das Trennzeichen oder ein Zeilenende in der Eingabe erkannt wird. -
STOP_AT_DELIMITER: Wenn in der Eingabe Anführungszeichen erkannt werden, die nicht mit Escapezeichen versehen sind, wird der für den angegebenen Wert analysierte Inhalt übersprungen, und stattdessen wird der innullValuefestgelegte Wert erzeugt. -
RAISE_ERROR: Wenn in der Eingabe Anführungszeichen erkannt werden, die nicht mit Escapezeichen versehen sind, wird eineTextParsingExceptionausgelöst.
-
-
mode(Standardwert istPERMISSIVE): Hiermit wird die Behandlung von beschädigten Datensätzen bei der Analyse festgelegt. Diese Option unterstützt die folgenden Modi, in denen nicht zwischen Groß- und Kleinschreibung unterschieden wird. Spark versucht, nur erforderliche Spalten in CSV mithilfe der Spaltenbereinigung zu analysieren. Daher können sich beschädigte Datensätze je nach der erforderlichen Menge an Feldern unterscheiden. Dieses Verhalten kann vonspark.sql.csv.parser.columnPruning.enabledgesteuert werden (diese Option ist standardmäßig aktiviert).-
PERMISSIVE: Wenn ein beschädigter Datensatz erkannt wird, wird die falsch formatierte Zeichenfolge in ein durchcolumnNameOfCorruptRecordkonfiguriertes Feld eingefügt, und die falsch formatierten Felder werden auf NULL festgelegt. Wenn Benutzer*innen beschädigte Datensätze beibehalten möchten, können sie ein Zeichenfolgen-Typfeld mit dem Namen „columnNameOfCorruptRecord“ in einem benutzerdefinierten Schema festlegen. Wenn das Feld nicht im Schema vorhanden ist, werden beschädigte Datensätze bei der Analyse gelöscht. Ein Datensatz mit weniger oder mehr Token als das Schema ist für CSV kein beschädigter Datensatz. Wenn ein Datensatz mit weniger Token als der Länge des Schemas erkannt wird, wird „NULL“ für zusätzliche Felder festgelegt. Wenn der Datensatz über mehr Token als die Länge des Schemas verfügt, werden zusätzliche Token gelöscht. -
FAILFAST: Hiermit wird eine Ausnahme ausgelöst, wenn beschädigte Datensätze erkannt werden.
-
-
columnNameOfCorruptRecord(Standardwert ist der inspark.sql.columnNameOfCorruptRecordangegebene Wert): Hiermit wird das Umbenennen des neuen Felds mit der nicht wohlgeformten Zeichenfolge ermöglicht, das imPERMISSIVE-Modus erstellt wurde. Dadurch wirdspark.sql.columnNameOfCorruptRecordüberschrieben. -
multiLine(Standardwert istfalse): Hiermit wird ein Datensatz analysiert, der mehrere Zeilen umfassen kann. -
locale(Standardwert isten-US): Hiermit wird ein Gebietsschema als Sprachtag im IETF BCP 47-Format festgelegt. das beispielsweise beim Analysieren von Datumsangaben und Zeitstempeln verwendet wird. -
lineSep(Standard gilt für\r,\r\nund\n): Hiermit wird das Zeilentrennzeichen definiert, das für die Analyse verwendet werden soll. Die maximale Länge beträgt 1 Zeichen. -
pathGlobFilter: Dies ist ein optionales Globmuster, das nur Dateien mit Pfaden einschließt, die dem Muster entsprechen. Die Syntax entsprichtorg.apache.hadoop.fs.GlobFilter. Das Verhalten der Partitionsermittlung wird dadurch nicht geändert.
Beispiele
> SELECT from_csv('1, 0.8', 'a INT, b DOUBLE');
{1,0.8}
> SELECT from_csv('26/08/2015', 'time Timestamp', map('timestampFormat', 'dd/MM/yyyy'));
{"time":2015-08-26 00:00:00}