Amazon S3 连接
您可以使用 Amazon Glue for Spark 在 Amazon S3 中读取和写入文件。AmazonGlue for Spark 支持许多开箱即用的存储在 Amazon S3 中的常见数据格式,包括 CSV、Avro、JSON、Orc 和 Parquet。有关支持的数据格式的更多信息,请参阅 Amazon Glue for Spark 中的输入和输出的数据格式选项。每种数据格式可能支持不同的 Amazon Glue 功能集。有关功能支持的细节,请查阅您的数据格式页面。此外,您可以读取和写入存储在 Hudi、Iceberg 和 Delta Lake 数据湖框架中的版本控制文件。有关数据湖框架的更多信息,请参阅 在 Amazon Glue ETL 任务中使用数据湖框架。
使用 Amazon Glue,您可以在写入时将 Amazon S3 对象分成文件夹结构,然后使用简单的配置按分区检索以提高性能。您还可以设置配置,以便在转换数据时将小文件分组在一起以提高性能。您可以在 Amazon S3 中进行读写 bzip2 和 gzip 存档。
主题
配置 S3 连接
要在 Amazon Glue with Spark 作业中连接到 Amazon S3,需要具备一些先决条件:
- 
                
Amazon Glue 作业必须拥有对相关 Amazon S3 存储桶的 IAM 权限。
 
在某些情况下,您需要配置其他先决条件:
- 
                
配置跨账户访问时,需要对 Amazon S3 存储桶进行适当的访问控制。
 - 
                
出于安全考虑,您可以选择通过 Amazon VPC 路由您的 Amazon S3 请求。此方法可能会带来带宽和可用性方面的难题。有关更多信息,请参阅 适用于 Amazon S3 的 Amazon VPC 终端节点。
 
Amazon S3 连接选项参考
指定与 Amazon S3 的连接。
由于 Amazon S3 管理文件而不是表,因此除了指定本文档中提供的连接属性外,您还需要指定有关文件类型的额外配置。您可以通过数据格式选项来指定此信息。有关格式选项的更多信息,请参阅 Amazon Glue for Spark 中的输入和输出的数据格式选项。您也可以通过与 Amazon Glue Data Catalog 集成来指定此信息。
有关连接选项和格式选项之间区别的示例,请考虑 create_dynamic_frame_from_options 方法如何采用 connection_type、connection_options、format 和 format_options。本节专门讨论提供给 connection_options 的参数。
"connectionType": "s3" 可使用以下连接选项:
- 
                
"paths":(必需)要从中读取数据的 Amazon S3 路径的列表。 - 
                
"exclusions":(可选)包含要排除的 Unix 样式 glob 模式的 JSON 列表的字符串。例如,"[\"**.pdf\"]"会排除所有 PDF 文件。有关 Amazon Glue 支持的 glob 语法的更多信息,请参阅包含和排除模式。 - 
                
"compressionType"或 "compression":(可选)指定数据压缩方式。使用适用于 Amazon S3 源的"compressionType"以及适用于 Amazon S3 目标的"compression"。通常,如果数据有标准文件扩展名,则不需要指定。可能的值为"gzip"和"bzip2"。特定格式可能支持其他压缩格式。有关功能支持的细节,请查阅数据格式页面。 - 
                
"groupFiles":(可选)当输入包含超过 50,000 个文件时,默认启用文件分组。当少于 50,000 个文件时,若要启用分组,请将此参数设置为"inPartition"。当超过 50,000 个文件时,若要禁用分组,请将此参数设置为"none"。 - 
                
"groupSize":(可选)目标组大小(以字节为单位)。默认值根据输入数据大小和群集大小进行计算。当少于 50,000 个输入文件时,"groupFiles"必须设置为"inPartition",此选项才能生效。 - 
                
"recurse":(可选)如果设置为 true,则以递归方式读取指定路径下的所有子目录中的文件。 - 
                
"maxBand":(可选,高级)此选项控制s3列表可能保持一致的持续时间(以毫秒为单位)。当使用JobBookmarks来表明 Amazon S3 最终一致性时,将专门跟踪修改时间戳在最后maxBand毫秒内的文件。大多数用户不需要设置此选项。默认值为 900000 毫秒或 15 分钟。 - 
                
"maxFilesInBand":(可选,高级)此选项指定在最后maxBand秒内可保存的最大文件数量。如果超过此值,额外的文件将会跳过,且只能在下一次作业运行中处理。大多数用户不需要设置此选项。 - 
                
"isFailFast":(可选)此选项用于确定 Amazon Glue ETL 任务是否导致读取器解析异常。如果设置为true,并且 Spark 任务的四次重试无法正确解析数据,则任务会快速失败。 - 
                
"catalogPartitionPredicate":(可选)用于读取。SQLWHERE子句的内容。从具有大量分区的 Data Catalog 表中读取时使用。从 Data Catalog 索引中检索匹配的分区。与push_down_predicate一起使用,create_dynamic_frame_from_catalog 方法(以及其他类似方法)上的一个选项。有关更多信息,请参阅 使用目录分区谓词进行服务器端筛选。 - 
                
"partitionKeys":(可选)用于写入。列标签字符串数组。AmazonGlue 将按照此配置的指定对您的数据进行分区。有关更多信息,请参阅 写入分区。 - 
                
"excludeStorageClasses":(可选)用于读取。指定 Amazon S3 存储类的字符串数组。AmazonGlue 将根据此配置排除 Amazon S3 对象。有关更多信息,请参阅 排除 Amazon S3 存储类。 
已弃用的数据格式连接语法
某些数据格式可以使用特定的连接类型语法进行访问。此语法已被弃用。我们建议您改用 Amazon Glue for Spark 中的输入和输出的数据格式选项 中提供的 s3 连接类型和格式选项来指定格式。
"connectionType": "orc"
指定与 Amazon S3 中以 Apache Hive 优化的行列式(ORC)
"connectionType": "orc" 可使用以下连接选项:
- 
                    
paths:(必需)要从中读取数据的 Amazon S3 路径的列表。 - 
                    
(其他选项名称/值对):任何其他选项(包括格式化选项)将直接传递给 SparkSQL
DataSource。 
"connectionType": "parquet"
指定与 Amazon S3 中以 Apache Parquet
"connectionType": "parquet" 可使用以下连接选项:
- 
                    
paths:(必需)要从中读取数据的 Amazon S3 路径的列表。 - 
                    
(其他选项名称/值对):任何其他选项(包括格式化选项)将直接传递给 SparkSQL
DataSource。