从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 - 如何使用 Glue 以编程方式创建 Athena 表
如何从aws glue pyspark作业中的嵌套数组中提取数据