Sobes.tech
Middle+

AWS Glue, Antenna ve Spark ile ilgili deneyiminiz nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

AWS Glue ile sunucusuz ETL görevleri üzerinde çalıştım, PySpark kullanarak. Glue tetikleyicilerini S3 olaylarına ayarladım. AWS Data Catalog'u kullandım.

Antenna ile hiç karşılaşmadım.

Genellikle büyük veri işleme için PySpark aracılığıyla Apache Spark ile çalıştım. Spark SQL kullanarak yapılandırılmış sorgular yaptım ve düşük seviyeli işlemler için RDD API'sini kullandım. Spark dağıtımı deneyimim: yerel kümeler, YARN ve Kubernetes üzerinde Spark.

AWS Glue için basit bir ETL betiği örneği:

# glue_etl_script.py
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
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)

# S3'ten veri okuma
datasource0 = glueContext.create_dynamic_frame.from_options(
    format_options={"multiline": False},
    connection_type="s3",
    format="json",
    connection_options={"paths": ["s3://my-source-bucket/input_data/"], "recurse": True},
    transformation_ctx="datasource0"
)

# Veri dönüştürme (örneğin: sütun seçimi ve yeniden adlandırma)
applymapping1 = ApplyMapping.apply(
    frame=datasource0,
    mappings=[
        ("id", "long", "user_id", "long"),
        ("name", "string", "user_name", "string"),
        ("value", "double", "amount", "double")
    ],
    transformation_ctx="applymapping1"
)

# Dönüştürülmüş veriyi tekrar S3'e yazma
datasink2 = glueContext.write_dynamic_frame.from_options(
    frame=applymapping1,
    connection_type="s3",
    format="parquet",
    connection_options={"path": "s3://my-target-bucket/output_data/", "partitionKeys": []},
    transformation_ctx="datasink2"
)

job.commit()