路径提取器示例
以下路径提取器示例演示如何扁平化和重命名字段或将数据提取为 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" |
有关搜索路径和其他搜索路径示例的更多信息,请参阅 GitHub 上的 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/'