【问题标题】:Load JSON from s3 inside aws glue pyspark job在 aws 胶水 pyspark 作业中从 s3 加载 JSON
【发布时间】:2018-08-14 13:31:50
【问题描述】:

我正在尝试从胶水 pyspark 脚本中的 s3 存储桶中检索 JSON 文件。

我正在 aws 胶水内的作业中运行此功能:

def run(spark):
    s3_bucket_path = 's3://bucket/data/file.gz'

    df = spark.read.json(s3_bucket_path)
    df.show()

在此之后,我得到: AnalysisException: u'Path 不存在:s3://bucket/data/file.gz;'

我搜索了这个问题,但没有找到任何足以推断问题所在的类似内容。我认为访问存储桶可能存在权限问题,但是错误消息应该有所不同。

【问题讨论】:

  • 您应该确保该 URL 可公开访问。如果您没有明确将其公开,则即使您是授权用户,也无法通过该 URL 访问它。

标签: python json amazon-s3 pyspark aws-glue


【解决方案1】:

在这里你可以试试这个:

    s3 = boto3.client("s3", region_name="us-west-2", aws_access_key_id=" 
        ", aws_secret_access_key="")
    jsonFile = s3.get_object(Bucket=bucket, Key=key)
    jsonObject = json.load(jsonFile["Body"])

Key = full path to your file in bucket

spark.read.json(jsonObject)中使用这个jsonObject

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-05
    • 2021-12-18
    • 1970-01-01
    • 2021-01-28
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多