Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Regex SerDe
Regex SerDe utilizza un'espressione regolare (regex) per deserializzare i dati estraendo i gruppi regex nelle colonne della tabella.
Se una riga nei dati non corrisponde a regex, tutte le colonne nella riga vengono restituite come NULL
. Se una riga corrisponde a regex ma ha meno gruppi del previsto, i gruppi mancanti sono NULL
. Se una riga nei dati corrisponde a regex ma contiene più colonne rispetto ai gruppi in regex, le colonne aggiuntive vengono ignorate.
Per ulteriori informazioni, consulta Class RegexSerDe
Nome della libreria di serializzazione
Il nome della libreria di serializzazione per SerDe Regex è. org.apache.hadoop.hive.serde2.RegexSerDe
Per informazioni sul codice sorgente, consulta Class RegexSerDe In nella documentazione di
Esempio
L'esempio seguente crea una tabella dai CloudFront log utilizzando. RegExSerDe Replace (Sostituisci) myregion
accedi s3://athena-examples-
con l'identificatore della regione in cui esegui Athena (ad esempiomyregion
/cloudfront/plaintext/s3://athena-examples-us-west-1/cloudfront/plaintext/
,).
CREATE EXTERNAL TABLE IF NOT EXISTS cloudfront_logs ( `Date` DATE, Time STRING, Location STRING, Bytes INT, RequestIP STRING, Method STRING, Host STRING, Uri STRING, Status INT, Referrer STRING, os STRING, Browser STRING, BrowserVersion STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^(?!#)([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+([^ ]+)\\s+[^\(]+[\(]([^\;]+).*\%20([^\/]+)[\/](.*)$" ) LOCATION 's3://athena-examples-
myregion
/cloudfront/plaintext/';