LazySimpleSerDe para arquivos CSV, TSV e com delimitação personalizada - Amazon Athena

LazySimpleSerDe para arquivos CSV, TSV e com delimitação personalizada

Especificar esse SerDe é opcional. Este é o SerDe para dados em formatos CSV, TSV e com delimitação personalizada que o Athena usa por padrão. Este SerDe será usado se você não especificar qualquer SerDe e especificar somente ROW FORMAT DELIMITED. Use esse SerDe caso os dados não tenham valores entre aspas.

Para documentação de referência sobre o LazySimpleSerDe, consulte a seção Hive SerDe do Guia do desenvolvedor do Apache Hive.

Nome da biblioteca

O nome da biblioteca de classes de LazySimpleSerDe é org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe. Para obter informações sobre a classe LazySimpleSerDe, consulte LazySimpleSerDe.java em GitHub.com.

Ignorar cabeçalhos

Para ignorar os cabeçalhos nos dados ao definir a tabela, você pode usar a propriedade de tabela skip.header.line.count, conforme mostrado no exemplo a seguir.

TBLPROPERTIES ("skip.header.line.count"="1")

Para ver exemplos, consulte as instruções CREATE TABLE em Consultar os logs de fluxo do Amazon VPC e Consultar os logs do Amazon CloudFront.

Exemplo de CSV

O exemplo a seguir mostra como usar LazySimpleSerDe para criar uma tabela no Athena com base em dados CSV. Para desserializar arquivos com delimitação personalizada usando esse SerDe, siga o padrão no exemplo, mas use a cláusula FIELDS TERMINATED BY para especificar um delimitador de caractere único diferente. LazySimpleSerDe não é compatível com delimitadores de vários caracteres.

nota

Substitua myregion em s3://athena-examples-myregion/path/to/data/ pelo identificador da região onde o Athena é executado, por exemplo, s3://athena-examples-us-west-1/path/to/data/.

Use a instrução CREATE TABLE para criar uma tabela do Athena usando os dados subjacentes em CSV armazenados no Amazon S3.

CREATE EXTERNAL TABLE flight_delays_csv ( yr INT, quarter INT, month INT, dayofmonth INT, dayofweek INT, flightdate STRING, uniquecarrier STRING, airlineid INT, carrier STRING, tailnum STRING, flightnum STRING, originairportid INT, originairportseqid INT, origincitymarketid INT, origin STRING, origincityname STRING, originstate STRING, originstatefips STRING, originstatename STRING, originwac INT, destairportid INT, destairportseqid INT, destcitymarketid INT, dest STRING, destcityname STRING, deststate STRING, deststatefips STRING, deststatename STRING, destwac INT, crsdeptime STRING, deptime STRING, depdelay INT, depdelayminutes INT, depdel15 INT, departuredelaygroups INT, deptimeblk STRING, taxiout INT, wheelsoff STRING, wheelson STRING, taxiin INT, crsarrtime INT, arrtime STRING, arrdelay INT, arrdelayminutes INT, arrdel15 INT, arrivaldelaygroups INT, arrtimeblk STRING, cancelled INT, cancellationcode STRING, diverted INT, crselapsedtime INT, actualelapsedtime INT, airtime INT, flights INT, distance INT, distancegroup INT, carrierdelay INT, weatherdelay INT, nasdelay INT, securitydelay INT, lateaircraftdelay INT, firstdeptime STRING, totaladdgtime INT, longestaddgtime INT, divairportlandings INT, divreacheddest INT, divactualelapsedtime INT, divarrdelay INT, divdistance INT, div1airport STRING, div1airportid INT, div1airportseqid INT, div1wheelson STRING, div1totalgtime INT, div1longestgtime INT, div1wheelsoff STRING, div1tailnum STRING, div2airport STRING, div2airportid INT, div2airportseqid INT, div2wheelson STRING, div2totalgtime INT, div2longestgtime INT, div2wheelsoff STRING, div2tailnum STRING, div3airport STRING, div3airportid INT, div3airportseqid INT, div3wheelson STRING, div3totalgtime INT, div3longestgtime INT, div3wheelsoff STRING, div3tailnum STRING, div4airport STRING, div4airportid INT, div4airportseqid INT, div4wheelson STRING, div4totalgtime INT, div4longestgtime INT, div4wheelsoff STRING, div4tailnum STRING, div5airport STRING, div5airportid INT, div5airportseqid INT, div5wheelson STRING, div5totalgtime INT, div5longestgtime INT, div5wheelsoff STRING, div5tailnum STRING ) PARTITIONED BY (year STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\' LINES TERMINATED BY '\n' LOCATION 's3://athena-examples-myregion/flight/csv/';

Execute a MSCK REPAIR TABLE para atualizar metadados da partição sempre que uma nova partição for adicionada a essa tabela:

MSCK REPAIR TABLE flight_delays_csv;

Consulte as 10 rotas principais atrasadas há mais de 1 hora:

SELECT origin, dest, count(*) as delays FROM flight_delays_csv WHERE depdelayminutes > 60 GROUP BY origin, dest ORDER BY 3 DESC LIMIT 10;
nota

Os dados da tabela de voos foram extraídos dos Voos fornecidos pelo Departamento de Transportes dos EUA, Bureau of Transportation Statistics (Agência de Estatísticas de Transportes). Saturação do original removida.

Exemplo de TSV

Para criar uma tabela do Athena com base em dados TSV armazenados no Amazon S3, use ROW FORMAT DELIMITED e especifique \t como delimitador do campo de tabulação, \n como separador de linhas e \ como o caractere de escape. O trecho a seguir mostra essa sintaxe. Nenhum exemplo de dados de voo do TSV está disponível no local de athena-examples, mas, como na tabela CSV, você executaria MSCK REPAIR TABLE para atualizar os metadados da partição sempre que uma nova partição fosse adicionada.

... ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ESCAPED BY '\\' LINES TERMINATED BY '\n' ...