【问题标题】:Wring files in s3 using spark and reading the same using pandas dataframe使用 spark 在 s3 中写入文件并使用 pandas 数据框读取相同的文件
【发布时间】:2023-03-16 18:26:01
【问题描述】:

使用 spark 写入文件 s3 通常会创建一个目录,其中有两个文件成功,另一个文件名以 name as part 开头,其中包含 s3 中的实际数据,如何使用 pandas 数据框加载相同的文件,因为文件路径发生了变化,因为文件名 Par 与实际数据在每次运行中都会有所不同。

例如撰写本文时的文件路径: df。写。 colaesce("s3"\testfolder.csv)

存储在目录中的文件是 成功 部分-00-

我有一个将文件读取到熊猫数据框的 python 作业

pd.read(s3\..........这里指定的路径是什么......)

【问题讨论】:

标签: python amazon-s3 pyspark


【解决方案1】:

您需要准确的密钥才能读取,这可以使用 boto3 模块完成

import boto3
s3 = boto3.resource('s3')
bucket_name = s3.Bucket('bucket-name')

file = []
for obj in bucket_name.objects.filter(Prefix= 'path', Delimiter = "_SUCCESS"):
   file.append(obj.key)

然后您可以使用下面的 sn-p 以 csv 格式读取文件:

bucket_name = "bucket-name"
file_path = file[0]
obj = s3.Object(bucket_name, file_path)
get_obj = obj.get()['Body'].read().decode('utf-8')
pdf = pd.read_csv(StringIO(get_obj))

【讨论】:

  • 如果文件在指定路径下不可用,列表是否为空或代码无法正常运行?
猜你喜欢
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
  • 2018-02-25
  • 2020-08-27
  • 2018-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多