从S3阅读文件时出错- PySpark

of1yzvn4  于 2023-06-21  发布在  Spark
关注(0)|答案(1)|浏览(137)

我正在尝试将s3上的**. csv**文件读入Glue中的PySpark Dataframe 。但是,它仍然失败,出现"AnalysisException: Path does not exist: s3://kp-landing-dev/input/kp/kp/export_incr_20230611183316.csv"错误。我已经验证了路径和文件一百次,它们确实存在(在s3上)。我为这事伤透了脑筋。
我甚至构建了一个函数(如下)来检查文件是否存在于s3上,它是否成功运行并正确返回文件名。因此,我有点困惑,不知道我错在哪里。

def get_file_name(bucket_name, directory_remote, file_name):
    try:
        s3 = boto3.client('s3')
        objects = s3.list_objects_v2(Bucket=bucket_name, Prefix=f"{directory_remote}/{file_name}")
        for obj in objects['Contents']:
            return(obj['Key'].split("/")[-1])
    except:
        print("Error encountered in get_file_name")

bucket = "kp-landing-dev"
directory_remote = "input/kp/kp"
toName_csv = "export_incr_20230611183316"
myfile = get_file_name(bucket, directory_remote, toName_csv) --> outputs- "export_incr_20230611183316"

df = spark.read.options(header='true').csv("s3://" + f"{bucket}" + "/" + f"{directory_remote}" + "/" + f"{myfile}", schema=schema)

有人能帮帮忙吗。

2izufjch

2izufjch1#

您可以用途:

df = spark.read.csv("s3://kp-landing-dev/input/kp/kp/*.csv")

相关问题