Funktionen from_csv
Gäller för: Databricks SQL
Databricks Runtime
Returnerar ett struct-värde med csvStr
och schema
.
Syntax
from_csv(csvStr, schema [, options])
Argument
csvStr
: Ett STRING-uttryck som anger en rad med CSV-data.schema
: En STRÄNGliteral eller anrop av schema_of_csv funktion.options
: En valfri MAP<STRING,STRING-literal> som anger direktiv.
Returer
En STRUCT med fältnamn och typer som matchar schemadefinitionen.
csvStr
bör vara välformulerad med avseende på schema
och options
.
schema
måste definieras som kommaavgränsat kolumnnamn och datatyppar som används i till exempel CREATE TABLE
.
options
, om detta anges, kan vara något av följande:
sep
(standard,
): anger en avgränsare för varje fält och värde. Den här avgränsaren kan innehålla ett eller flera tecken.encoding
(standard-UTF-8): avkodar CSV-filerna efter den angivna kodningstypen.quote
(standard"
): anger ett enda tecken som används för att ta bort angivna värden där avgränsaren kan ingå i värdet. Om du vill inaktivera citattecken måste du inte ange null utan en tom sträng. Det här beteendet skiljer sig fråncom.databricks.spark.csv
.escape
(standard\
): anger ett enda tecken som används för att undvika citattecken i ett redan citerat värde.charToEscapeQuoteEscaping
(standardescape
eller\0
): anger ett enda tecken som används för att undvika escape för citattecknet. Standardvärdet är escape-tecken närescape
ochquote
tecken skiljer sig åt,\0
annars.comment
(standard tom sträng): anger ett enda tecken som används för att hoppa över rader som börjar med det här tecknet. Som standard är den inaktiverad.- header (standard
false
): använder den första raden som namn på kolumner. enforceSchema
(standardtrue
): Om det är inställt på sant tillämpas det angivna eller härledda schemat med två två skäl på datakällans filer, och rubriker i CSV-filer ignoreras. Om alternativet är inställt på false verifieras schemat mot alla huvuden i CSV-filer om rubrikalternativet är inställt på sant. Fältnamn i schema- och kolumnnamnen i CSV-huvuden kontrolleras av deras positioner med hänsynspark.sql.caseSensitive
till . Även om standardvärdet är sant rekommenderar vi att du inaktiverar alternativet enforceSchema för att undvika felaktiga resultat.inferSchema
(standardfalse
): härleder indataschemat automatiskt från data. Det krävs en extra passering av data.samplingRatio
(standard 1.0): definierar bråk av rader som används för schemaläggning.ignoreLeadingWhiteSpace
(standardfalse
): en flagga som anger om inledande blanksteg från värden som läss ska hoppas över.ignoreTrailingWhiteSpace
(standardfalse
): en flagga som anger om avslutande blanksteg från värden som läss ska hoppas över.nullValue
(standard tom sträng): anger strängrepresentationen av ett null-värde.emptyValue
(standard tom sträng): anger strängrepresentationen av ett tomt värde.nanValue
(standardNaN
): anger strängrepresentationen av ett värde som inte är tal.positiveInf
(standardInf
): anger strängrepresentationen av ett positivt oändligt värde.negativeInf
(standard-Inf)
: anger strängrepresentationen av ett negativt oändligt värde.dateFormat
(standardyyyy-MM-dd
): anger strängen som anger ett datumformat. Anpassade datumformat följer formaten i Datetime-mönster. Detta gäller för datumtyp.timestampFormat
(standardyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
): anger strängen som anger ett tidsstämpelformat. Anpassade datumformat följer formaten i Datetime-mönster. Detta gäller för tidsstämpeltypen.maxColumns
(standard20480
): definierar en hård gräns för hur många kolumner en post kan ha.maxCharsPerColumn
(standard -1): definierar det maximala antalet tecken som tillåts för alla angivna värden som läss. Som standard är det -1 som betyder obegränsad längdunescapedQuoteHandling
(standardSTOP_AT_DELIMITER
): definierar hur CSV-parsern hanterar värden med ej kapslade citattecken.STOP_AT_CLOSING_QUOTE
: Om ej kapslade citattecken hittas i indata ackumulerar du citattecknet och fortsätter att parsa värdet som ett citerat värde tills en avslutande offert hittas.BACK_TO_DELIMITER
: Om ej kapslade citattecken hittas i indata bör du betrakta värdet som ett icke-citattecken. Detta gör att parsern ackumulerar alla tecken i det aktuella parsade värdet tills avgränsaren hittas. Om ingen avgränsare hittas i värdet fortsätter parsern att ackumulera tecken från indata tills en avgränsare eller radslut hittas.STOP_AT_DELIMITER
: Om ej kapslade citattecken hittas i indata bör du betrakta värdet som ett icke-citattecken. Detta gör att parsern ackumulerar alla tecken tills avgränsaren eller ett radslut hittas i indata.STOP_AT_DELIMITER
: Om ej kapslade citattecken hittas i indata hoppas innehållet som parsas för det angivna värdet över och värdet som anges i skapas inullValue
stället.RAISE_ERROR
: Om ej kapslade citattecken hittas i indata genereras enTextParsingException
.
mode
(standardPERMISSIVE
): tillåter ett läge för att hantera skadade poster under parsning. Den stöder följande skiftlägen som är okänsliga. Spark försöker parsa endast nödvändiga kolumner i CSV under kolumnrensning. Därför kan skadade poster vara olika baserat på obligatoriska fältuppsättningar. Det här beteendet kan styras avspark.sql.csv.parser.columnPruning.enabled
(aktiveras som standard).PERMISSIVE
: När den möter en skadad post placerar du den felaktigt formulerade strängen i ett fält som konfigurerats avcolumnNameOfCorruptRecord
och anger felaktiga fält till null. Om du vill behålla skadade poster kan en användare ange ett strängtypfält med namnet columnNameOfCorruptRecord i ett användardefinierat schema. Om ett schema inte har fältet släpps skadade poster under parsningen. En post med färre eller fler token än schemat är inte en skadad post till CSV. När den uppfyller en post med färre token än schemats längd anger null till extra fält. När posten har fler token än schemats längd släpper den extra token.FAILFAST
: utlöser ett undantag när det möter skadade poster.
columnNameOfCorruptRecord
(standardvärdet är det värde som anges ispark.sql.columnNameOfCorruptRecord
): tillåter att det nya fältet byts namn med en felaktig sträng som skapats avPERMISSIVE
läget. Detta åsidosätterspark.sql.columnNameOfCorruptRecord
.multiLine
(standardfalse
): parsa en post, som kan sträcka sig över flera rader.locale
(standarden-US
): anger ett språk som språktagg i IETF BCP 47-format. Detta används till exempel vid parsning av datum och tidsstämplar.lineSep
(standardvärdet omfattar alla\r
,\r\n
, och\n
): definierar den radavgränsare som ska användas för parsning. Maximal längd är 1 tecken.pathGlobFilter
: ett valfritt globmönster för att endast inkludera filer med sökvägar som matchar mönstret. Syntaxen följerorg.apache.hadoop.fs.GlobFilter
. Det ändrar inte beteendet för partitionsidentifiering.
Exempel
> 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}
Relaterade funktioner
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för