Python 在aws glue pyspark作业中从s3加载JSON
我试图从glue pyspark脚本中的s3存储桶中检索JSON文件 我正在aws glue内的作业中运行此函数:Python 在aws glue pyspark作业中从s3加载JSON,python,json,amazon-s3,pyspark,aws-glue,Python,Json,Amazon S3,Pyspark,Aws Glue,我试图从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'路径不存在:s3://bucket/data/file.gz;' 我搜索了这个问题
def run(spark):
s3_bucket_path = 's3://bucket/data/file.gz'
df = spark.read.json(s3_bucket_path)
df.show()
在此之后,我得到:
AnalysisException:u'路径不存在:s3://bucket/data/file.gz;'
我搜索了这个问题,没有找到任何类似的东西,足以推断问题在哪里。我认为访问bucket时可能会出现权限问题,但是错误消息应该不同。在这里,您可以尝试以下操作:
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=bucket中文件的完整路径
并在spark.read.jsonjsonObject中使用此jsonObject您应该确保URL是可公开访问的。如果您没有明确地将其公开,则即使您是授权用户,也无法通过该URL访问它。