Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 
      中国的 Amazon Web Services 服务入门
         (PDF)。
    Amazon Glue 从源中检索数据,并将数据写入以各种数据格式存储和传输的目标。如果您的数据以 Ion 数据格式存储或传输,本文档将向您介绍供您使用 Amazon Glue 中的数据的可用功能。
Amazon Glue 支持使用 Ion 格式。此格式以可互换的二进制和纯文本表示形式表示(并非基于行或列的)数据结构。有关作者对此格式的说明,请参阅 Amazon Ion。(有关更多信息,请参阅 Amazon Ion 规范。)
您可以使用 Amazon Glue 从 Amazon S3 中读取 Ion 文件。您可以从 S3 中读取包含 Ion 文件的 bzip 和 gzip 存档。请在 S3 连接参数 上而非本页中讨论的配置中配置压缩行为。
下表显示了支持 Ion 格式选项的常见 Amazon Glue 功能。
                
                    | 读取 | 
                    写入 | 
                    流式处理读取 | 
                    对小文件进行分组 | 
                    作业书签 | 
                
            
                
                    | 支持 | 
                    不支持 | 
                    不支持 | 
                    支持 | 
                    不支持 | 
                
            
 
        
        先决条件:需要待读取的 Ion 文件或文件夹的 S3 路径 (s3path)。
        配置:在函数选项中,请指定 format="json"。在您的 connection_options 中,请使用 paths 键指定 s3path。您可以在 connection_options 中配置读取器与 S3 的交互方式。有关详细信息,请参阅 Amazon Glue 中 ETL 的连接类型和选项:Amazon S3 连接选项参考。
        以下 Amazon Glue ETL 脚本显示了从 S3 读取 Ion 文件或文件夹的过程:
        
            - Python
 - 
                    
在本示例中,使用 create_dynamic_frame.from_options 方法。
                    # Example: Read ION from S3
from pyspark.context import SparkContext
from awsglue.context import GlueContext
sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
dynamicFrame = glueContext.create_dynamic_frame.from_options(
    connection_type="s3",
    connection_options={"paths": ["s3://s3path"]},
    format="ion"
)
                 
            - Scala
 - 
                    
在本示例中,使用 getSourceWithFormat 操作。
                    // Example: Read ION from S3
import com.amazonaws.services.glue.util.JsonOptions
import com.amazonaws.services.glue.GlueContext
import org.apache.spark.SparkContext
object GlueApp {
  def main(sysArgs: Array[String]): Unit = {
    val spark: SparkContext = new SparkContext()
    val glueContext: GlueContext = new GlueContext(spark)
    val dynamicFrame = glueContext.getSourceWithFormat(
      connectionType="s3",
      format="ion",
      options=JsonOptions("""{"paths": ["s3://s3path"], "recurse": true}""")
    ).getDynamicFrame()
  }
}
                 
        
     
        
        
        没有适用于 format="ion" 的 format_options 值。