将 Amazon S3 中的文件用作数据源
如果您选择 Amazon S3 作为数据源,则可以选择以下任一项:
-
数据目录数据库和表。
-
Amazon S3 中的存储桶、文件夹或文件。
如果您将 Amazon S3 存储桶用作数据源,AWS Glue 会从文件中的指定位置检测数据的架构,或者使用您指定的文件作为样本文件。当您使用 Infer schema (推断架构) 按钮时,会检测架构。如果您更改 Amazon S3 位置或样本文件,则必须选择 Infer schema (推断架构),使用新信息执行架构检测。
配置直接从 Amazon S3 中的文件读取数据的数据源节点
-
转到新任务或已保存任务的可视编辑器。
-
在任务图中为 Amazon S3 源选择数据源节点。
-
选择 Data source properties (数据源属性) 选项卡,然后输入以下信息:
-
S3 source type (S3 源类型):(仅适用于 Amazon S3 数据源)选择选项 S3 location (S3 位置)。
-
S3 URL:输入 Amazon S3 存储桶、文件夹或包含任务数据的文件的路径。您可以选择 Browse S3 (浏览 S3),从您的账户的可用位置中选择路径。
-
Recursive (递归):如果需要 AWS Glue 从 S3 位置在子文件夹中的文件读取数据,请选择该选项。
如果子文件夹包含分区数据,AWS Glue 不会将文件夹名称中指定的分区信息添加到数据目录。例如,您可考虑 Amazon S3 中的以下文件夹。
S3://sales/year=2019/month=Jan/day=1 S3://sales/year=2019/month=Jan/day=2
如果选择 Recursive (递归),将
sales
文件夹选为 S3 位置,择 AWS Glue 会读取所有子文件夹中的数据,但不会为年份、月份或日创建分区。 -
Data format (数据格式):选择数据的存储格式。您可以选择 JSON、CSV 或 Parquet。您选择的值会告知 AWS Glue 任务如何从源文件读取数据。
注意
如果您未选择正确的数据格式,AWS Glue 可能会正确推断模式,但任务将无法正确解析源文件中的数据。
您可以输入其他配置选项,具体取决于您选择的格式。
-
JSON(JavaScript 对象表示法)
-
JsonPath:输入指向用于定义表架构的对象的 JSON 路径。JSON 路径表达式始终引用 JSON 结构,类似于 XPath 表达式与 XML 文档的结合使用方式。JSON 路径中的“根成员对象”始终称为
$
,即使它是一个对象或数组。JSON 路径可以用点表示法或括号表示法编写。有关 JSON 路径的更多信息,请参阅 GitHub 网站上的 JsonPath
。 -
Records in source files can span multiple lines (源文件中的记录可以跨越多行):如果单个记录可以跨越 CSV 文件中的多行,请选择此选项。
-
-
CSV(逗号分隔值)
-
Delimiter (分隔符):输入字符以表示行中每个列条目的分隔项,例如
;
或者,
。 -
Escape character (转义字符):输入用作转义字符的字符。此字符表示紧接转义字符的字符应该按字面意思处理,不应将其解释为分隔符。
-
Quote character (引号字符):输入用于将单独的字符串分组为单个值的字符。例如,如果您的 CSV 文件包含
"This is a single value"
之类的值,您将选择 Double quote (") (双引号("))。 -
Records in source files can span multiple lines (源文件中的记录可以跨越多行):如果单个记录可以跨越 CSV 文件中的多行,请选择此选项。
-
First line of source file contains column headers (源文件的第一行包含列标题):如果 CSV 文件中的第一行包含列标题而不是数据,请选择此选项。
-
-
Parquet(Apache Parquet 列式存储)
对于以 Parquet 格式存储的数据,不需要配置其他设置。
-
-
Partition predicate (分区谓词):要对从数据源读取的数据进行分区,请输入基于 Spark SQL 的布尔表达式,仅包含分区列。例如:
"(year=='2020' and month=='04')"
。 -
Advanced options (高级选项):如果需要 AWS Glue 根据特定文件检测数据的架构,请展开此部分。
-
Schema inference (架构推理):如果您希望特定的文件,而不是让 AWS Glue 选择文件,则选择选项从 S3 中选择样本文件。
-
Auto-sampled file (自动取样文件):输入 Amazon S3 中用于推断架构的文件的路径。
如果要编辑数据源节点并更改选定的样本文件,请选择 Reload schema (重新加载架构),使用新的样本文件检测架构。
-
-
-
选择 Infer schema (推断架构) 按钮,从 Amazon S3 的源文件中检测架构。如果您更改 Amazon S3 位置或样本文件,则必须再次选择 Infer schema (推断架构),使用新信息推断架构。