Не удается получить доступ к существующей MonetDB с помощью dplyr

Вчера я создал базу данных MonetDBLite, заполнил ее и получил доступ к ней с помощью dplyr, однако сегодня утром я не могу использовать dplyr.

Вот мое подключение:

statcast_db <- MonetDBLite::src_monetdblite("/Users/williampetti/statcast_database/statcast_db_Monet", create = FALSE)

А вот простой запрос для таблицы statcast_17:

statcast_db %>% 
    tbl("statcast_17") %>% 
    select(game_date) %>% 
    distinct() %>% 
    collect() %>% 
    tail(n = 1)

Вчера это работало нормально. Сегодня утром я получаю эту ошибку:

Error in UseMethod("db_query_fields") : 
  no applicable method for 'db_query_fields' applied to an object of class "MonetDBEmbeddedConnection"

Однако, если я использую простой вызов dbGetQuery, он работает нормально:

> dbGetQuery(statcast_db$con, "SELECT game_date FROM statcast_17 ORDER BY game_date DESC LIMIT 1")
   game_date
1 2017-04-29

Вот моя информация о сеансе:

> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.6 (El Capitan)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] xml2_1.1.1        baseballr_0.3.1   RSQLite_1.0.0     pacman_0.4.1     
 [5] dplyr_0.5.0       purrr_0.2.2       readr_1.0.0       tidyr_0.6.0      
 [9] tibble_1.2        ggplot2_2.2.1     tidyverse_1.0.0   magrittr_1.5     
[13] MonetDBLite_0.3.1 RMySQL_0.10.9     DBI_0.5-1        

loaded via a namespace (and not attached):
 [1] splines_3.3.1       lattice_0.20-33     colorspace_1.2-6   
 [4] htmltools_0.3.5     mgcv_1.8-12         chron_2.3-47       
 [7] XML_3.98-1.6        survival_2.40-1     hexbin_1.27.1      
[10] foreign_0.8-66      RColorBrewer_1.1-2  plyr_1.8.4         
[13] stringr_1.2.0       munsell_0.4.3       gtable_0.2.0       
[16] rvest_0.3.2         XML2R_0.0.6         codetools_0.2-14   
[19] latticeExtra_0.6-28 knitr_1.14          reldist_1.6-6      
[22] htmlTable_1.7       Rcpp_0.12.9         acepack_1.4.1      
[25] scales_0.4.1        pitchRx_1.8.2       Hmisc_4.0-0        
[28] gridExtra_2.2.1     digest_0.6.11       stringi_1.1.3      
[31] grid_3.3.1          tools_3.3.1         bitops_1.0-6       
[34] lazyeval_0.2.0      RCurl_1.95-4.8      Formula_1.2-1      
[37] cluster_2.0.4       MASS_7.3-45         Matrix_1.2-6       
[40] data.table_1.9.6    lubridate_1.6.0     httr_1.2.1         
[43] assertthat_0.1      R6_2.1.3            rpart_4.1-10       
[46] nnet_7.3-12         nlme_3.1-128   

person BillPetti    schedule 01.05.2017    source источник
comment
Попробуйте использовать версию MonetDBLite для разработчиков с Github. Dplyr недавно внес некоторые изменения.   -  person Hannes Mühleisen    schedule 01.05.2017
comment
Когда я пытаюсь установить версию для разработчиков, я получаю это Error: Could not find build tools necessary to build MonetDBLite. Другие версии пакетов для разработчиков прекрасно устанавливаются для меня с devtools::install_github.   -  person BillPetti    schedule 01.05.2017
comment
Для этого вам может потребоваться установить инструменты командной строки xcode на OSX, поскольку MonetDBLite содержит много кода C.   -  person Hannes Mühleisen    schedule 01.05.2017
comment
Все еще сталкиваюсь с той же проблемой. Обновлено до версии MoneyDBLite для разработчиков, а также dbplyr и dplyr. Также сейчас работает R 3.4.   -  person BillPetti    schedule 01.05.2017
comment
Не могли бы вы сделать простой воспроизводимый пример с таблицей mtcars, пожалуйста? Я хотел бы превратить это в тестовый пример.   -  person Hannes Mühleisen    schedule 03.05.2017
comment
Все еще не повезло с версиями для разработчиков DBI, MonetDBLite, dbplyr и dplyr?   -  person Hannes Mühleisen    schedule 23.05.2017
comment
Нет, к сожалению, я не смог заставить его работать, поэтому на этом этапе использовал простой SQL-запрос вместо dplyr.   -  person BillPetti    schedule 23.05.2017
comment
У меня такие же проблемы. Любое решение?   -  person Flavio Barros    schedule 22.03.2018
comment
Итак, я не знаю, в этом ли проблема, но я присоединяю пакеты в этом порядке, и это позволяет мне использовать dplyr для запроса моей базы данных: MonetDBLite, DBI, tidyverse. Когда я переключаю порядок, он дает мне ту же старую ошибку.   -  person BillPetti    schedule 06.04.2018
comment
Это как-то работает в RStudio?   -  person Hannes Mühleisen    schedule 20.11.2018
comment
Да, хотя я считаю, что у меня была такая же проблема вне RStudio   -  person BillPetti    schedule 22.11.2018


Ответы (1)


Я только что ответил на аналогичный вопрос сегодня утром, выяснив, что порядок, в котором вы загружаете MonetDBLite, имеет значение. Я наткнулся на этот вопрос, пытаясь понять, почему это имеет значение. У меня были те же Error in UseMethod проблемы, что и у Билла Петти. Убедитесь, что MonetDBLite загружается после того, как dplyr и dbplyr решили проблему за меня. Вот ссылка на этот другой ответ:

https://stackoverflow.com/a/53307673/3705612

person Corey N.    schedule 14.11.2018
comment
Просто хотел отметить, что я не видел последний комментарий @BillPetti (от 6 апреля 2018 г.), когда предлагал свой ответ. И теперь мне интересно, действительно ли это порядок загрузки пакетов вызывает ошибку, или вместо этого это уже существующий объект src_monetdb в рабочей области при запуске сеанса R. С чистым рабочим пространством я могу загрузить MonetDBLite до dplyr и dbplyr и заставить его работать. - person Corey N.; 15.11.2018