本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 SerDe
(串行器/解串器)是一种可供 SerDe 与各种格式的数据交互的方式。Athena
它是您指定的 SerDe,而不是定义表架构的 DDL。换言之,SerDe 可以覆盖您在创建表时在 Athena 中指定的 DDL 配置。
在查询中使用SerDe
要在 SerDe 中创建表时使用 Athena,请使用以下方法之一:
-
使用 DDL 语句来描述如何在表中读取和写入数据,不指定
ROW FORMAT
,如以下示例所示。这会省略列出实际 SerDe 类型,并且默认使用本机LazySimpleSerDe
。
通常,如果您不指定 ROW FORMAT
,或者指定 ROW FORMAT DELIMITED
,Athena 会使用 LazySimpleSerDe
。
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\' COLLECTION ITEMS TERMINATED BY '|' MAP KEYS TERMINATED BY ':'
-
显式指定 SerDe 在向表中读取和写入数据时应使用的 Athena 类型。此外,在
SERDEPROPERTIES
中指定其他属性,如以下示例所示。
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = ',', 'field.delim' = ',', 'collection.delim' = '|', 'mapkey.delim' = ':', 'escape.delim' = '\\' )