Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Função
Aplica-se a:
Databricks SQL
Databricks Runtime
Retorna um valor struct com o csvStr e schema.
Sintaxe
from_csv(csvStr, schema [, options])
Argumentos
-
csvStr: Uma expressão STRING especificando uma linha de dados CSV. -
schema: Um literal de cadeia ou invocação da funçãoschema_of_csv. -
options: Um opcional MAP<STRING,STRING> literal especificando diretivas.
Devoluções
Um STRUCT com nomes de campos e tipos que correspondem à definição do esquema.
csvStr deve estar bem formado em relação ao schema e options.
schema deve ser definido como pares de nomes de colunas e tipos de dados separados por vírgulas, como usado por exemplo CREATE TABLEem .
options, se fornecido, pode ser qualquer um dos seguintes:
-
sep(padrão,): define um separador para cada campo e valor. Este separador pode ter um ou mais caracteres. -
encoding(UTF-8 padrão): decodifica os arquivos CSV pelo tipo de codificação especificado. -
quote(padrão):"define um único carácter usado para escapar dos valores entre aspas, onde o separador pode fazer parte do valor. Se quiseres desligar as aspas, tens de definir não nulo, mas sim uma cadeia vazia. Esse comportamento é diferente decom.databricks.spark.csv. -
escape(padrão\): define um único caractere usado para escapar de aspas dentro de um valor já cotado. -
charToEscapeQuoteEscaping(padrãoescapeou\0): define um único caractere usado para escapar do escape para o caractere de aspas. O valor padrão é o caractere de escape quandoescapeequoteos caracteres são diferentes,\0caso contrário. -
comment(cadeia de caracteres vazia padrão): define um único caractere usado para pular linhas que começam com esse caractere. Por padrão, ele está desativado. - cabeçalho (padrão
false): usa a primeira linha como nome das colunas. -
enforceSchema(padrãotrue): Se for definido como verdadeiro, o esquema especificado ou inferido é aplicado à força a ficheiros fonte de dados, e os cabeçalhos nos ficheiros CSV são ignorados. Se a opção estiver definida como falsa, o esquema é validado contra todos os cabeçalhos nos ficheiros CSV caso a opção do cabeçalho esteja definida como verdadeira. Os nomes dos campos no esquema e os nomes das colunas nos cabeçalhos CSV são verificados pelas suas posições tendo em contaspark.sql.caseSensitive. Embora o valor padrão seja true, é recomendável desabilitar a opção enforceSchema para evitar resultados incorretos. -
inferSchema(padrãofalse): infere automaticamente o esquema de entrada a partir dos dados. Requer uma passagem extra sobre os dados. -
samplingRatio(padrão 1.0): define fração de linhas usadas para inferir esquemas. -
ignoreLeadingWhiteSpace(por defeitofalse): um indicador que indica se os espaços em branco iniciais dos valores a serem lidos devem ou não ser ignorados. -
ignoreTrailingWhiteSpace(por defeitofalse): um indicador que indica se os espaços em branco finais dos valores que estão a ser lidos devem ser ignorados. -
nullValue(cadeia de caracteres vazia padrão): define a representação de cadeia de caracteres de um valor nulo. -
emptyValue(cadeia de caracteres vazia padrão): define a representação de cadeia de caracteres de um valor vazio. -
nanValue(padrãoNaN): define a representação de cadeia de caracteres de um valor que não seja numérico. -
positiveInf(padrãoInf): define a representação de cadeia de caracteres de um valor infinito positivo. -
negativeInf(padrão-Inf): define a representação de cadeia de caracteres de um valor infinito negativo. -
dateFormat(padrãoyyyy-MM-dd): define a cadeia de caracteres que indica um formato de data. Os formatos de data personalizados seguem os formatos nos padrões Datetime. Isto aplica-se ao tipo de data. -
timestampFormat(padrãoyyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]): define a cadeia de caracteres que indica um formato de carimbo de data/hora. Os formatos de data personalizados seguem os formatos nos padrões Datetime. Isso se aplica ao tipo de carimbo de data/hora. -
maxColumns(padrão20480): define um limite rígido de quantas colunas um registo pode ter. -
maxCharsPerColumn(padrão -1): define o número máximo de caracteres permitido para qualquer valor especificado que está sendo lido. Por padrão, é -1, o que significa comprimento ilimitado -
unescapedQuoteHandling(padrãoSTOP_AT_DELIMITER): define como o parser CSV trata valores com aspas não escapadas.-
STOP_AT_CLOSING_QUOTE: Se forem encontradas cotações sem escape na entrada, acumule o caractere de cotação e prossiga analisando o valor como um valor cotado, até que uma cotação de fechamento seja encontrada. -
BACK_TO_DELIMITER: Se forem encontradas cotações sem escape na entrada, considere o valor como um valor não cotado. Isso fará com que o analisador acumule todos os caracteres do valor analisado atual até que o delimitador seja encontrado. Se nenhum delimitador for encontrado no valor, o analisador continuará acumulando caracteres da entrada até que um delimitador ou terminação de linha seja encontrado. -
STOP_AT_DELIMITER: Se forem encontradas cotações sem escape na entrada, considere o valor como um valor não cotado. Isso fará com que o analisador acumule todos os caracteres até que o delimitador ou uma terminação de linha seja encontrada na entrada. -
STOP_AT_DELIMITER: Se forem encontradas citações não escapadas na entrada, o conteúdo analisado para o valor especificado é omitido e o valor inserido emnullValueé produzido em seu lugar. -
RAISE_ERROR: Se forem encontradas cotações sem escape na entrada, umTextParsingExceptioné lançado.
-
-
mode(padrãoPERMISSIVE): permite um modo para lidar com registros corrompidos durante a análise. Ele suporta os seguintes modos que não diferenciam maiúsculas de minúsculas. O Spark procura analisar apenas as colunas necessárias em arquivos CSV sob eliminação de colunas. Portanto, registos corrompidos podem ser diferentes consoante o conjunto de campos necessários. Esse comportamento pode ser controlado porspark.sql.csv.parser.columnPruning.enabled(ativado por padrão).-
PERMISSIVE: quando ele atende a um registro corrompido, coloca a cadeia de caracteres malformada em um campo configurado porcolumnNameOfCorruptRecord, e define campos malformados como nulos. Para manter registos corrompidos, um utilizador pode definir um campo de tipo string chamado columnNameOfCorruptRecord num esquema definido pelo utilizador. Se um esquema não tiver o campo, ele descartará registros corrompidos durante a análise. Um registo com menos ou mais tokens do que o esquema não é um registo corrompido para CSV. Quando encontra um registo com menos tokens do que o comprimento do esquema, define null para campos extra. Quando o registo tem mais tokens do que o comprimento do esquema, descarta os tokens excedentes. -
FAILFAST: lança uma exceção quando atende a registros corrompidos.
-
-
columnNameOfCorruptRecord(padrão é o valor especificado emspark.sql.columnNameOfCorruptRecord): permite renomear o novo campo com a string malformada criada pelo modoPERMISSIVE. Isso substitui ospark.sql.columnNameOfCorruptRecord. -
multiLine(padrãofalse): analise um registro, que pode abranger várias linhas. -
locale(padrãoen-US): define uma localidade como marca de idioma no formato IETF BCP 47. Por exemplo, isso é usado ao analisar datas e carimbos de data/hora. -
lineSep(padrão abrange todos ,\r\r\ne\n): define o separador de linha que deve ser usado para análise. O comprimento máximo é de 1 caractere. -
pathGlobFilter: um padrão glob opcional para incluir apenas arquivos com caminhos correspondentes ao padrão. A sintaxe segueorg.apache.hadoop.fs.GlobFilter. Não altera o comportamento da descoberta de partições.
Exemplos
> 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}