Middle+
Ποια είναι η εμπειρία σας με AWS Glue, Antenna και Spark;
sobes.tech AI
Απάντηση από AI
Δούλεψα με το AWS Glue για serverless εργασίες ETL, χρησιμοποιώντας PySpark. Ρύθμισα triggers Glue σε συμβάντα S3. Χρησιμοποίησα το AWS Data Catalog.
Δεν έχω εμπειρία με το Antenna.
Έχω εργαστεί κυρίως με Apache Spark μέσω PySpark για την επεξεργασία μεγάλων δεδομένων. Χρησιμοποίησα Spark SQL για δομημένα ερωτήματα και API RDD για χαμηλού επιπέδου λειτουργίες. Εμπειρία στην ανάπτυξη Spark: τοπικές συστοιχίες, YARN και Spark σε Kubernetes.
Παράδειγμα απλού script ETL σε PySpark για το AWS Glue:
# 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
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"
)
# Μετατροπή δεδομένων (παράδειγμα: επιλογή και μετονομασία στηλών)
applymapping1 = ApplyMapping.apply(
frame=datasource0,
mappings=[
("id", "long", "user_id", "long"),
("name", "string", "user_name", "string"),
("value", "double", "amount", "double")
],
transformation_ctx="applymapping1"
)
# Εγγραφή μετασχηματισμένων δεδομένων πίσω σε S3
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()