小编Ajj*_*nan的帖子

将 csv 从 S3 流式传输/分块到 Python

我打算使用 Python 对存储在 S3 中的非常大的 csv 文件执行一些内存密集型操作,目的是将脚本移动到 AWS Lambda。我知道我可以读入整个 csv nto 内存,但我肯定会遇到 Lambda 的内存和存储限制,有这么大的文件,有什么方法可以使用 boto3 将 csv 的块流式传输或一次读取到 Python 中/ botocore,理想情况下通过指定要读入的行号?

以下是我已经尝试过的一些事情:

1) 使用range参数 inS3.get_object指定要读入的字节范围。不幸的是,这意味着最后几行在中间被截断,因为无法指定要读入的行数。有一些混乱的解决方法,例如扫描最后一个换行符,记录索引,然后将其用作下一个字节范围的起点,但如果可能的话,我想避免这种笨拙的解决方案。

2) 使用 S3 select 编写 sql 查询以有选择地从 S3 存储桶中检索数据。不幸的row_numbers是,不支持 SQL 函数,而且看起来没有办法读取行的子集。

python amazon-s3 botocore boto3 amazon-s3-select

9
推荐指数
1
解决办法
7256
查看次数

在 Amazon Athena 中按索引选择行

这是一个非常简单的问题,但我似乎无法找到有关它的文档。如何按索引查询行(即选择表中的第 10 行到第 20 行)?

我知道有一个row_numbers功能,但它似乎没有做我想要的。

sql presto amazon-athena

5
推荐指数
2
解决办法
1万
查看次数

lubridate 中日期间隔的平均值

如何获得润滑间隔对象的“平均值”(或更准确地说是中点)?我尝试过使用基本的mean()函数,但它返回一个双精度值。

library(lubridate)   
ex = interval(ymd("2009-05-01"), ymd("2009-07-01"))
mean(ex)
[1] 5270400
Run Code Online (Sandbox Code Playgroud)

r lubridate

2
推荐指数
1
解决办法
2418
查看次数