使用Elastic Package将数据从elasticsearch提取到R中,加载到数据帧中,由于匹配未扩展到相同长度而导致的错误

使用Elastic Package将数据从elasticsearch提取到R中,加载到数据帧中,由于匹配未扩展到相同长度而导致的错误,第1张

使用Elastic Package将数据从elasticsearch提取到R中,加载到数据帧中,由于匹配未扩展到相同长度而导致的错误

作者在这里

elastic

我们不试图将输出强制转换为data.frame的输出,因为它的变量是如此之大,以至于我们经常会遇到错误。但是我们确实允许您传递一个选项以

jsonlite
强制执行
data.frame
(通过
asdf
参数
作为data.frame ),因为这永远不会失败。

如果处理列表输出,我将使用之一,

dplyr
或者
data.table
如果要返回列表。

为了重现性:

library(elastic)if (!index_exists("shakespeare")) {  shakespeare <- system.file("examples", "shakespeare_data.json", package = "elastic")  docs_bulk(shakespeare)}res <- Search(index="shakespeare", fields=c('play_name','speaker'))out <- lapply(res$hits$hits, function(x) unlist(x$fields, FALSE))

dplyr

library(dplyr)bind_rows(out)#> # A tibble: 10 × 2#>    play_name       speaker#>        <chr>         <chr>#> 1   Henry IV   #> 2   Henry IV KING HENRY IV#> 3   Henry IV KING HENRY IV#> 4   Henry IV KING HENRY IV#> 5   Henry IV KING HENRY IV#> 6   Henry IV KING HENRY IV#> 7   Henry IV KING HENRY IV#> 8   Henry IV KING HENRY IV#> 9   Henry IV  WESTMORELAND#> 10  Henry IV  WESTMORELAND

data.table

library(data.table)rbindlist(out, fill = TRUE, use.names = TRUE)#>    play_name       speaker#> 1:  Henry IV   #> 2:  Henry IV KING HENRY IV#> 3:  Henry IV KING HENRY IV#> 4:  Henry IV KING HENRY IV#> 5:  Henry IV KING HENRY IV#> 6:  Henry IV KING HENRY IV#> 7:  Henry IV KING HENRY IV#> 8:  Henry IV KING HENRY IV#> 9:  Henry IV  WESTMORELAND#> 10:  Henry IV  WESTMORELAND

或者,使用

asdf
参数,
jsonlite::fromJSON
如果可能的话,该参数在内部定向为解析到data.frame。

res <- Search(index="shakespeare", fields=c('play_name','speaker'), asdf = TRUE)res$hits$hits$fields#>    play_name       speaker#> 1   Henry IV   #> 2   Henry IV KING HENRY IV#> 3   Henry IV KING HENRY IV#> 4   Henry IV KING HENRY IV#> 5   Henry IV KING HENRY IV#> 6   Henry IV KING HENRY IV#> 7   Henry IV KING HENRY IV#> 8   Henry IV KING HENRY IV#> 9   Henry IV  WESTMORELAND#> 10  Henry IV  WESTMORELAND

使用:

  • [R
    v3.3.2
  • OSX
  • elastic
    v0.7.8.9000
  • Elasticsearch
    v2.3.4


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4901478.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-12
下一篇2022-11-12

发表评论

登录后才能评论

评论列表(0条)

    保存