本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Glue 會從各來源擷取資料,並將資料寫入以各種資料格式儲存和傳輸的目標。如果您的資料以 Ion 資料格式存放或傳輸,本文件將向您介紹在 AWS Glue 中使用資料的可用功能。
AWS Glue 支援使用 Ion 格式。此格式以可互換的二進位和純文字表示法表示資料結構(並非基於資料列或資料行的資料結構)。如需作者的格式簡介,請參閱 Amazon Ion。(如需詳細資訊,請參閱 Amazon Ion 規格。)
您可以使用 AWS Glue 從 Amazon S3 讀取 Ion 檔案。您可以讀取 bzip
和 gzip
來自 S3 的包含 Ion 檔案的封存。您可以在 S3 連線參數 上設定壓縮行為,而不是在本頁討論的組態中設定。
下表顯示支援 Ion 格式選項的常見 AWS Glue 操作。
讀取 |
寫入 |
串流讀取 |
對小型檔案進行分組 |
任務書籤 |
支援 |
不支援 |
不支援 |
支援 |
不支援 |
先決條件:您需要指向希望讀取的 Ion 檔案或資料夾的 S3 路徑 (s3path
)。
組態:在您的函數選項中,指定 format="json"
。在您的 connection_options
中,使用 paths
索引鍵指定 s3path
。您可以在 connection_options
中設定讀取器與 S3 的互動方式。如需詳細資訊,請參閱 AWS Glue 中 ETL 的連線類型和選項:Amazon S3 連線選項參考。
以下 AWS 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
值。