从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的主要内容,如果未能解决你的问题,请参考以下文章

Pyspark 数据框删除 AWS Glue 脚本中的重复项

AWS Glue PySpark 替换 NULL

aws glue / pyspark - 如何使用 Glue 以编程方式创建 Athena 表

如何从aws glue pyspark作业中的嵌套数组中提取数据

如何克服 AWS Glue 作业中的 Spark“设备上没有剩余空间”错误

字符串长度超过 Glue 中的 DDL 长度(python,pyspark)