【问题标题】:Read last csv file from s3 bucket using Pyspark使用 Pyspark 从 s3 存储桶中读取最后一个 csv 文件
【发布时间】:2021-11-11 03:06:13
【问题描述】:

所以我有一个 s3 存储桶(数据),其中有一个名为(first)的文件夹,其中包含多个 CSV 文件,但我现在不知道该文件的名称,我想从该文件夹中读取最新的文件进入 pyspark 数据框。

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python amazon-web-services csv amazon-s3 pyspark


【解决方案1】:

要从 S3 下载 CSV,您必须一一下载:

import os
import boto3

from dotenv import load_dotenv
load_dotenv(verbose=True)

def aws_session(region_name='us-east-1'):
    return boto3.session.Session(aws_access_key_id=os.getenv('AWS_ACCESS_KEY_ID'),
                            aws_secret_access_key=os.getenv('AWS_ACCESS_KEY_SECRET'),
                            region_name=region_name)


def download_file_from_bucket(bucket_name, s3_key, dst_path):
    session = aws_session()
    s3_resource = session.resource('s3')
    bucket = s3_resource.Bucket(bucket_name)
    bucket.download_file(Key=s3_key, Filename=dst_path)

download_file_from_bucket('tci-s3-demo', 'children.csv', 'children_download.csv')

上面的代码将帮助您从任何目标路径上的 S3 存储桶下载文件。

以下代码应进行相应修改,以从 spark 中的 CSV 文件上传架构

df = spark.read.csv("/tmp/resources/zipcodes.csv")
df.printSchema()

【讨论】:

    猜你喜欢
    • 2021-10-25
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多