[Python] Delta Lake for AWS Glue notebook setup

Discussão em 'Python' iniciado por Stack, Março 1, 2025.

  1. Stack

    Stack Membro Participativo

    I wolud like to set up the delta lake format on AWS Glue and do the simple ETL finishing with df.write.format("delta").mode("overwrite").save.(s3) Can someone please provide me with copy-paste code for this?

    Im using this:

    {
    "--datalake-formats": "delta"
    }


    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

    sc = SparkContext.getOrCreate()
    glueContext = GlueContext(sc)
    spark = glueContext.spark_session
    job = Job(glueContext)


    and then according to documentation -


    Create a key named --conf for your AWS Glue job, and set it to the following value. Alternatively, you can set the following configuration using SparkConf in your script. These settings help Apache Spark correctly handle Delta Lake tables.
    ​

    spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog --conf spark.delta.logStore.class=org.apache.spark.sql.delta.storage.S3SingleDriverLogStore


    import pyspark
    from delta.tables import *
    from delta import *
    from pyspark.sql.types import *
    from pyspark.sql.functions import *

    # Create a spark session with Delta
    builder = pyspark.sql.SparkSession.builder.appName("DeltaTutorial") \
    .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \
    .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")

    # Create spark context
    spark = configure_spark_with_delta_pip(builder).getOrCreate()
    spark.sparkContext.setLogLevel("ERROR")


    And then I got the error:


    ModuleNotFoundError: No module named 'delta'
    ​

    or without import part

    # Create a spark session with Delta
    builder = pyspark.sql.SparkSession.builder.appName("DeltaTutorial") \
    .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \
    .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")

    # Create spark context
    spark = configure_spark_with_delta_pip(builder).getOrCreate()
    spark.sparkContext.setLogLevel("ERROR")


    error


    NameError: name 'configure_spark_with_delta_pip' is not defined
    ​

    Continue reading...

Compartilhe esta Página