大家好,我知道很多类似的问题,我会在这里找到,但我有一个代码是正确执行,这是返回五个记录,我的问题是,我应该如何只读取整个文件和至少返回愿望行只是我有一个csv文件的大小在gb,所以我不想返回整个gb文件的数据只获取5个记录,所以请告诉我应该如何得到它…如果可能的话,请解释我的代码如果不好为什么它不好。。 代码:
import boto3
from botocore.client import Config
import pandas as pd
ACCESS_KEY_ID = 'something'
ACCESS_SECRET_KEY = 'something'
BUCKET_NAME = 'something'
Filename='dataRepository/source/MergedSeedData(Parts_skills_Durations).csv'
client = boto3.client("s3",
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=ACCESS_SECRET_KEY)
obj = client.get_object(Bucket=BUCKET_NAME, Key=Filename)
Data = pd.read_csv(obj['Body'])
# data1 = Data.columns
# return data1
Data=Data.head(5)
print(Data)
这是我的代码,运行良好,也得到了5个记录从s3桶,但我已经解释了,我正在寻找任何其他查询请随时给我发短信…thnxx提前
您可以使用HTTP
Range:
头(see RFC 2616),它接受字节范围参数。s3api对此有一个规定,这将帮助您不必读取/下载整个S3文件。在样本代码:
这将只返回头中提供的byte_range_数据。在
但是您需要修改它来将字符串转换为},可能是{}
Dataframe
。对于来自.csv
文件的字符串中的\t
和{您可以使用reading a file in chunks的pandas功能,只需加载所需的数据即可。在
相关问题 更多 >
编程相关推荐