中的 ETL 输入和输出的格式选项AWS Glue - AWS Glue
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

中的 ETL 输入和输出的格式选项AWS Glue

各种 AWS Glue PySpark和Scala方法和转换使用A format 参数和A format_options 参数。这些参数可以采用以下值。

注意

目前,流式处理 ETL 作业支持的唯一格式是 JSON、CSV、Parquet 和 ORC。

format="avro"

此值指定 阿帕特阿夫罗 数据格式。

您可以使用 format_options 价值观 format="avro":

  • version — 指定要支持ApacheAvroReader/Writer格式的版本。默认值为“1.7”。您可以指定 format_options={"version": “1.8”} 以启用 Avro 逻辑类型读取和写入。有关详细信息,请参阅 ApacheAvro1.7.7规格ApacheAvro1.8.2规格.

    Apache Avro 1.8 连接器支持以下逻辑类型转换:

对于读取器:此表显示 Avro 数据类型(逻辑类型和 Avro 基元类型)与 Avro 阅读器 1.7 和 1.8 的 Glue DynamicFrame 数据类型之间的转换。

Avro 数据类型:

逻辑类型

Avro 数据类型:

Avro 基元类型

GlueDynamicFrame 数据类型:

Avro 读取器 1.7

GlueDynamicFrame 数据类型:

Avro 读取器 1.8

小数 :字节 BINARY 小数
小数 固定 BINARY 小数
Date int INT Date
时间(毫秒) int INT INT
时间(微秒) Long LONG LONG
时间戳(毫秒) Long LONG Timestamp()
时间戳(微秒) Long LONG LONG
持续时间(不是逻辑类型) 固定为 12 BINARY BINARY

对于写入器:此表显示 Avro 写入器 1.7 和 1.8 在 Glue DynamicFrame 数据类型与 Avro 数据类型之间的转换。

Glue DynamicFrame 数据类型 Avro 数据类型:

Avro 写入器 1.7

Avro 数据类型:

Avro 写入器 1.8

小数 :字符串 decimal
Date :字符串 date
Timestamp() :字符串 timestamp-micros

format="csv"

此值指定 comma-separated-values 作为数据格式(例如 RFC4180RFC7111)。

您可以使用 format_options 价值观 format="csv":

  • separator — 指定分隔符字符。默认为逗号 (,)。',',但可以指定任何其他字符。

  • escaper — 指定用于逃脱的字符。默认值为 "none"...如果已启用,除了一组知名的精选逃脱,以后立即使用的字符是按原样使用的(\n\r\t,和 \0)。

  • quoteChar — 指定用于报价的字符。默认值为双引号:。'"'将这设置为 '-1' 可完全禁用引用。

  • multiline — 布尔值指定单个记录是否可跨越多行。当字段包含带引号的换行符时,会出现此选项。如果有记录跨越多个行,您必须将此选项设置为 "true"。默认值为 "false",它允许在分析过程中更积极地拆分文件。

  • withHeader — 布尔值指定是否将第一行作为标头处理。默认值为 "false"...此选项可用于 DynamicFrameReader 类。

  • writeHeader — 布尔值指定是否将标头写入输出。默认值为 "true"...此选项可用于 DynamicFrameWriter 类。

  • skipFirst — 布尔值指定是否跳过第一个数据行。默认值为 "false".

format="ion"

此值指定 亚马逊离子 数据格式。(有关详细信息,请参阅 AmazonION规格.)

目前, AWS Glue 不支持 ion 对于输出。

没有 format_optionsformat="ion".

format="grokLog"

此值指定一个或多个日志的数据格式,其中包含一个或多个日志格式化图案(例如,参见 Logstash参考(6.2]:Grok滤波器插件)。

目前, AWS Glue 不支持 groklog 对于输出。

您可以使用 format_options 价值观 format="grokLog":

  • logFormat — 指定与日志格式匹配的Grok模式。

  • customPatterns — 指定此处使用的其他Grok模式。

  • MISSING — 指定用于识别缺失值的信号。默认值为“'-'.

  • LineCount — 指定每个日志记录中的行数。默认值为 '1',并且目前仅支持单行记录。

  • StrictMode — 指定是否启用严格模式的布尔值。在严格模式下,读取器不会执行自动类型转换或恢复。默认值为 "false".

format="json"

此值指定A JSON (Javascript对象标记)数据格式。

目前, AWS Glue 不支持 format_options 对于 json 输出。

您可以使用 format_options 价值观 format="json":

  • jsonPath — A Jsonpath 标识要读入记录的对象的表达式。当文件包含嵌套在外部数组内的记录时,此表达式尤其有用。例如,以下 JsonPath 表达式面向 JSON 对象的 id 字段。

    format="json", format_options={"jsonPath": "$.id"}
  • multiline — 布尔值指定单个记录是否可跨越多行。当字段包含带引号的换行符时,会出现此选项。您必须将此选项设置为 "true" 如果任何记录跨多行。默认值为 "false",它允许在分析过程中更积极地拆分文件。

format="orc"

此值指定 ApacheORC 数据格式。(有关详细信息,请参阅 语言ORC.)

没有 format_optionsformat="orc"...但是,基础的SPARKSQL代码接受的任何选项都可以通过 connection_options MAP参数。

format="parquet"

此值指定 帕帕帕丁 数据格式。

没有 format_optionsformat="parquet"...但是,基础的SPARKSQL代码接受的任何选项都可以通过 connection_options MAP参数。

format="glueparquet"

此值指定一个自定义 Parquet 编写器类型,该类型已作为数据格式针对动态帧进行优化。编写前不需要预先计算的架构。在数据传入时,glueparquet 会动态计算和修改架构。

您可以使用 format_options 价值观 format="glueparquet":

  • compression — 指定写入Parquet文件时使用的压缩编解码器。默认值为 "snappy".

  • blockSize — 指定在内存中缓冲行组的大小。默认值为 "128MB".

  • pageSize — 指定完全读取单个记录的最小单元大小。默认值为 "1MB".

限制:

  • glueparquet 仅支持架构收缩或扩展,但不支持类型更改。

  • glueparquet 无法存储仅架构文件。

  • glueparquet 只能作为数据水槽的格式传递。

format="xml"

此值将XML指定为数据格式,通过一个叉子分析的 ApacheSpark的XML数据源 分析仪。

目前,AWS Glue 不支持以“xml”格式输出。

您可以使用 format_options 价值观 format="xml":

  • rowTag — 指定文件中的XML标记,以用作行。行标签不能自结束。

  • encoding — 指定字符编码。默认值为 "UTF-8".

  • excludeAttribute — 布尔值指定是否要排除元素中的属性。默认值为 "false".

  • treatEmptyValuesAsNulls — 布尔值指定是否将白色空间视为空值。默认值为 "false".

  • attributePrefix — 属性前缀,以将其与元素区分。此前缀用于字段名称。默认值为 "_".

  • valueTag — 当元素中没有子的属性时,用于值的标记。默认值为“"_VALUE".

  • ignoreSurroundingSpaces — 布尔值指定是否应忽略周围值的白色空间。默认值为 "false".