从aws glue pyspark作业中的s3加载JSON

问题描述 投票:0回答:1

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

我在aws glue里面的工作中运行这个函数:

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;'

我搜索了这个问题,并没有找到任何类似的东西来推断出问题的位置。我认为访问存储桶可能存在权限问题,但错误消息应该不同。

python json amazon-s3 pyspark aws-glue
1个回答
5
投票

在这里你可以尝试这个:

    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

并在jsonObject使用这个spark.read.json(jsonObject)

© www.soinside.com 2019 - 2024. All rights reserved.