本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
以下路徑擷取器範例顯示如何平面化和重新命名欄位,或將資料擷取為 Amazon Ion 文字。
平面化和重新命名欄位
下列範例說明了一組展平和重新命名欄位的搜尋路徑。此範例使用搜尋路徑來執行下列動作:
-
將
nickname
資料欄映射至alias
欄位 -
將
name
資料欄映射至位於identification
結構中的name
子欄位。
以下是 Amazon Ion 文件範例。
-- Example Amazon Ion Document { identification: { name: "John Smith", driver_license: "XXXX" }, alias: "Johnny" }
以下是定義路徑擷取器的範例 CREATE TABLE
陳述式。
-- Example DDL Query
CREATE EXTERNAL TABLE example_schema2 (
name STRING,
nickname STRING
)
ROW FORMAT SERDE
'com.amazon.ionhiveserde.IonHiveSerDe'
WITH SERDEPROPERTIES (
'ion.nickname.path_extractor' = '(alias)',
'ion.name.path_extractor' = '(identification name)'
)
STORED AS ION
LOCATION 's3://amzn-s3-demo-bucket/path_extraction2/'
下列範例說明了擷取的資料。
-- Extracted Table | name | nickname | |--------------|--------------| | "John Smith" | "Johnny" |
如需有關搜尋路徑和其他搜尋路徑範例的詳細資訊,請參閱上的 Ion Java 路徑擷取
將飛行數據提取為文本格式
以下 CREATE TABLE
查詢範例使用 WITH
SERDEPROPERTIES
來新增路徑擷取器,以擷取航班資料並將輸出編碼指定為 Amazon Ion 文字。此範例使用 STORED AS
ION
語法。
CREATE EXTERNAL TABLE flights_ion (
yr INT,
quarter INT,
month INT,
dayofmonth INT,
dayofweek INT,
flightdate STRING,
uniquecarrier STRING,
airlineid INT,
)
ROW FORMAT SERDE
'com.amazon.ionhiveserde.IonHiveSerDe'
WITH SERDEPROPERTIES (
'ion.encoding' = 'TEXT',
'ion.yr.path_extractor'='(year)',
'ion.quarter.path_extractor'='(results quarter)',
'ion.month.path_extractor'='(date month)')
STORED AS ION
LOCATION 's3://amzn-s3-demo-bucket/'