Middle+
Qual é a sua experiência com AWS Glue, Antenna e Spark?
sobes.tech IA
Resposta da IA
Trabalhei com AWS Glue para tarefas ETL sem servidor, usando PySpark. Configurei gatilhos Glue para eventos S3. Usei AWS Data Catalog.
Nunca encontrei Antenna.
Trabalhei principalmente com Apache Spark via PySpark para processar grandes volumes de dados. Usei Spark SQL para consultas estruturadas e API RDD para operações de baixo nível. Experiência em implantação de Spark: clusters locais, YARN e Spark no Kubernetes.
Exemplo de um script ETL simples em PySpark para 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)
# Leitura de dados do 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"
)
# Transformação de dados (exemplo: seleção e renomeação de colunas)
applymapping1 = ApplyMapping.apply(
frame=datasource0,
mappings=[
("id", "long", "user_id", "long"),
("name", "string", "user_name", "string"),
("value", "double", "amount", "double")
],
transformation_ctx="applymapping1"
)
# Escrita de dados transformados de volta ao 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()