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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从aws glue pyspark作业中的s3加载JSON相关的知识,希望对你有一定的参考价值。

我正在尝试从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;'

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

答案

在这里你可以尝试这个:

    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)

以上是关于从aws glue pyspark作业中的s3加载JSON的主要内容,如果未能解决你的问题,请参考以下文章