在AWS Glus pyspark作业中从s3加载JSON

时间:2018-08-14 13:31:50

标签: python json amazon-s3 pyspark aws-glue

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

我正在aws胶内的作业中运行此功能:

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

我搜索了此问题,但没有发现任何足以推断出问题出在哪里的东西。我认为访问存储分区可能存在权限问题,但是错误消息应该有所不同。

1 个答案:

答案 0 :(得分:6)

在这里您可以尝试:

    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)