小编roa*_*rkz的帖子

使用 mutate 创建新变量时,Dplyr 代码比预期慢

我正在使用dplyr在我的数据框上创建三个新变量。数据帧为 84,253 obs。164 个变量。下面是我的代码。

# ptm <- proc.time()
 D04_Base2 <- D04_Base %>% 
    mutate(
        birthyr = year(as.Date(BIRTHDT,"%m/%d/%Y")),
        age = (snapshotDt - as.Date(BIRTHDT,"%m/%d/%Y")) / 365.25,
        age = ifelse(age > 100, NA, age)
        )
# proc.time() - ptm
user  system elapsed 
12.34    0.03   12.42 
Run Code Online (Sandbox Code Playgroud)

但是,我想知道我的代码是否存在明显的问题,因为它运行的时间比我预期的要长得多,或者是其他问题。如上所示,代码完成大约需要 12 秒。

r dplyr

4
推荐指数
1
解决办法
2696
查看次数

Athena 查询非常慢

我在 S3 中存储 400,000 个镶木地板文件,这些文件根据唯一 ID(例如 412812)进行分区。这些文件的数据大小从 25kb 到 250kb 不等。然后我想使用 Athena 查询数据。就像这样,

Select * 
From Table 
where id in (412812, 412813, 412814)
Run Code Online (Sandbox Code Playgroud)

该查询比预期慢得多。我希望能够搜索任何一组 ID 并获得快速响应。我相信它很慢是因为 Athena 必须搜索整个胶水目录以查找正确的文件(即对文件进行完整扫描)。

下面的查询速度非常快。不到一秒钟。

Select * 
From Table 
where id = 412812
Run Code Online (Sandbox Code Playgroud)

表上启用了partition.filtering。我尝试向表中添加与分区相同的索引,但它没有加快任何速度。

我的方法或表配置是否有问题,可以使此过程更快?

amazon-s3 amazon-web-services parquet amazon-athena aws-glue

3
推荐指数
1
解决办法
3684
查看次数