2016-08-15 143 views
2

如何從GitHub存儲庫將SQLite數據庫導入到我的R環境中?從GitHub導入SQLite數據庫

如果我有我的本地硬盤,我可以做以下SQLite數據庫,我想概括這對於SQLite數據庫的存儲在GitHub上:

library("RSQLite") 
db <- dbConnect(SQLite(), dbname="/path_to_file/database.sqlite") 
dbListTables(db) 
players<- dbGetQuery(db,' 
         select column1 
         from table1 
         ') 

鏈接我要的例子導入如下: https://github.com/cmohamma/jeopardy

如果無法從網絡連接將SQLite數據庫加載到內存中,我想至少知道如何通過命令行界面將它下載到磁盤。

我試圖通過RSelenium訪問存儲庫,但我不知道如何讓瀏覽器(Chrome)從GitHub下載任何東西 - 我可以導航到存儲庫中的文件,但我無法確定下載按鈕。

+1

這傢伙說,SQLite數據庫必須保存到磁盤,而不是僅僅存儲在內存中...所以你必須先下載文件然後你可以閱讀它使用你的代碼... http://stackoverflow.com/questions/21963020/reading-from-sqlite3-remote-databases – cory

+0

@cory好吧,非常有趣。感謝那。我仍然應該可以將文件下載到磁盤,然後通過命令行腳本將這些表讀入內存中(這是我所需要的幫助)。我真的不在乎它是否被保存到內存本身(我想這是有道理的,它需要先保存到磁盤)。 –

+0

我猜想sqlite數據庫的內存中存儲是一種可能性,「當這樣做完成後,不會打開任何磁盤文件,而是純粹在內存中創建一個新的數據庫。一旦數據庫連接關閉,數據庫就會停止存在。「https://www.sqlite.org/inmemorydb.html –

回答

5

您可以將原始sqlite的文件保存到臨時文件:

library("RSQLite") 
temp <- tempfile() 
download.file("https://github.com/cmohamma/jeopardy/blob/master/database.sqlite?raw=true", temp) 
db <- dbConnect(SQLite(), dbname=temp) 
dbListTables(db) 
# [1] "Strike1Players"   "Strike2Players"   "Strike3Players"   
# [4] "ThreeStrikesClues"  "WrongAnswers"   "categories"    
# [7] "clue_wrong_answers"  "clues"     "final"     
# [10] "final_jeopardy_answers" "game_players"   "games"     
# [13] "players"    "sqlite_sequence"  "temp"