Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Regex SerDe
Die Regex SerDe verwendet einen regulären Ausdruck (Regex), um Daten zu deserialisieren, indem Regex-Gruppen in Tabellenspalten extrahiert werden.
Wenn eine Zeile in den Daten nicht mit dem Regex übereinstimmt, werden alle Spalten in der Zeile als NULL
zurückgegeben. Wenn eine Zeile mit dem Regex übereinstimmt, aber weniger Gruppen hat als erwartet, sind die fehlenden Gruppen NULL
. Wenn eine Zeile in den Daten mit dem Regex übereinstimmt, aber mehr Spalten als Gruppen in dem Regex enthält, werden die zusätzlichen Spalten ignoriert.
Weitere Informationen finden Sie unter Class in der Apache Hive-Dokumentation. RegexSerDe
SerDe Name
RegexSerDe
Name der Bibliothek
RegexSerDe
Beispiele
Im folgenden Beispiel wird eine Tabelle aus CloudFront Protokollen mit dem erstellt RegExSerDe. Ersetzen Sie myregion
in s3://athena-examples-
durch den Regionsbezeichner, in dem Sie Athena ausführen, (z. B. myregion
/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/';