将弹性列表数据输出转换为R数据帧的速度较慢

时间:2015-12-24 18:06:00

标签: r elasticsearch

我有一个Elastic的输出,需要很长时间才能转换为R数据帧。我尝试了多种选择;并且觉得可能有一些技巧可以加快这个过程。

列表的结构如下。该列表在29天内汇总了数据(比如说)。如果让我们说弹性查询输出在列表中,那就是' v_day'那么[[5]] $ articles_over_time $ buckets [1:29]代表29天中的每一天

  setDT(dt, key = "Name")
  dt[, ":="(ActivityDate = as.Date(dt$ActivityDate, "%m/%d/%Y"),
            ActivityType = as.character(ActivityType) )]
  dt4 <- dt[.(Name=Name,  type=ActivityType, date=ActivityDate), {z=between(ActivityDate, date-21, date);
                                                                  .( type, date,  
                                                                     Email=sum( (ActivityType %chin% "Email") & z),
                                                                     Webinar=sum( (ActivityType %chin% "Webinar") & z) ) }
            , by=.EACHI]

有一个&#34;键&#34;这里的值就在我最感兴趣的地方(1446336000000)(我们称之为&#34;时间桶键#34;)。

在每一天内(让我们花一天时间),&#34; v_day [[5]] $ articles_over_time $ buckets [[i]] $ group_by_state $ buckets&#34;我感兴趣的数据更多。这是每个属性的聚合(属性是这里的事物方案中的实体)。

length(v_day[[5]]$articles_over_time$buckets)
[1] 29
page(v_day[[5]]$articles_over_time$buckets[[1]],method="print")

$key
[1] 1446336000000

$doc_count
[1] 35332

$group_by_state
$group_by_state$doc_count_error_upper_bound
[1] 0

$group_by_state$sum_other_doc_count
[1] 0

$group_by_state$buckets
$group_by_state$buckets[[1]]
$group_by_state$buckets[[1]]$key
[1] "detail"

$group_by_state$buckets[[1]]$doc_count
[1] 876

这显示了第i天中5个属性的数据,每个属性都有一个&#34;键&#34; (让我们称之为&#34;属性存储桶键&#34;)和&#34; doc_count&#34;我感兴趣的是。

最终我想要一个带有&#34;时间桶密钥&#34;,&#34;属性桶密钥&#34;,&#34; doc count&#34;的数据框。

目前我正在使用以下代码循环:

page(v_day[[5]]$articles_over_time$buckets[[i]]$group_by_state$buckets,method="print")

[[1]]
[[1]]$key
[1] "detail"

[[1]]$doc_count
[1] 876


[[2]]
[[2]]$key
[1] "ff8081814fdf2a9f014fdf80b05302e0"

[[2]]$doc_count
[1] 157


[[3]]
[[3]]$key
[1] "ff80818150a7d5930150a82abbc50477"

[[3]]$doc_count
[1] 63


[[4]]
[[4]]$key
[1] "ff8081814ff5f428014ffb5de99f1da5"

[[4]]$doc_count
[1] 57


[[5]]
[[5]]$key
[1] "ff8081815038099101503823fe5d00d9"

[[5]]$doc_count
[1] 56

0 个答案:

没有答案