AWS Glue 输出到流(Output to Stream)是指将 AWS Glue 作业中处理的数据流输出到 Amazon Kinesis Data Stream 中。在同一个账户下的 AWS Glue 和 Amazon Kinesis Data Stream 可以通过 IAM 角色进行联合使用。以下是一个 AWS Glue 输出到流的 Python 代码示例:
import sys
from awsglue.utils import getResolvedOptions
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from awsglue.context import GlueContext
from awsglue.dynamicframe import DynamicFrame
from pyspark.context import SparkContext
from pyspark.sql.functions import *
from awsglue.job import Job
args = getResolvedOptions(sys.argv, ['JOB_NAME'])
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args['JOB_NAME'], args)
# 从纯文本格式数据源创建动态框架
datasource = glueContext.create_dynamic_frame.from_catalog(database = "database_name", table_name = "table_name", transformation_ctx = "datasource")
# 在动态框架上进行转换
applymapping1 = ApplyMapping.apply(frame = datasource, mappings = [("col1", "string", "col1", "string"),("col2", "string", "col2", "string")], transformation_ctx = "applymapping1")
# 将动态框架转换为 Spark 数据框
df = applymapping1.toDF()
df.write.format('kinesis').option('streamName', 'stream-name').option("region", "us-east-1").save()
job.commit()