gpt4 book ai didi

pyspark - 如何将 csv/txt 文件加载到 AWS Glue 作业中

转载 作者:行者123 更新时间:2023-12-04 14:33:00 28 4
gpt4 key购买 nike

我对 AWS Glue 有以下 2 个说明,请您澄清一下。因为我需要在我的项目中使用胶水。

  • 我想将 csv/txt 文件加载到 Glue 作业中进行处理。 (就像我们在 Spark 中使用数据帧所做的那样)。这在胶水中可能吗?或者我们是否必须只使用 Crawler 将数据抓取到 Glue 表中并像下面一样使用它们进行进一步处理?
    empdf = glueContext.create_dynamic_frame.from_catalog(
    database="emp",
    table_name="emp_json")
  • 下面我使用 Spark 代码将文件加载到 Glue 中,但我收到了冗长的错误日志。我们可以直接运行 Spark 或 PySpark 代码而无需对 Glue 进行任何更改吗?
    import sys
    from pyspark.context import SparkContext
    from awsglue.context import GlueContext

    sc = SparkContext()
    glueContext = GlueContext(sc)
    spark = glueContext.spark_session
    job = Job(glueContext)
    job.init(args['JOB_NAME'], args)
    dfnew = spark.read.option("header","true").option("delimiter", ",").csv("C:\inputs\TEST.txt")
    dfnew.show(2)
  • 最佳答案

    可以使用 Glue 直接从 s3 加载数据:

    sourceDyf = glueContext.create_dynamic_frame_from_options(
    connection_type="s3",
    format="csv",
    connection_options={
    "paths": ["s3://bucket/folder"]
    },
    format_options={
    "withHeader": True,
    "separator": ","
    })

    您也可以使用 spark 来做到这一点(正如您已经尝试过的那样):
    sourceDf = spark.read
    .option("header","true")
    .option("delimiter", ",")
    .csv("C:\inputs\TEST.txt")

    但是,在这种情况下,Glue 不保证它们提供合适的 Spark 读取器。因此,如果您的错误与 CSV 缺少数据源有关,那么您应该添加 spark-csv通过 --extra-jars 提供指向其位置的 s3 路径,将 lib 添加到 Glue 作业范围。

    关于pyspark - 如何将 csv/txt 文件加载到 AWS Glue 作业中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52904510/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com