R Language
I / O för databastabeller
Sök…
Anmärkningar
Läsa data från MySQL-databaser
Allmän
Med hjälp av paketet RMySQL kan vi enkelt fråga både MySQL och MariaDB-databaser och lagra resultatet i ett R dataframe:
library(RMySQL)
mydb <- dbConnect(MySQL(), user='user', password='password', dbname='dbname',host='127.0.0.1')
queryString <- "SELECT * FROM table1 t1 JOIN table2 t2 on t1.id=t2.id"
query <- dbSendQuery(mydb, queryString)
data <- fetch(query, n=-1) # n=-1 to return all results
Använd gränser
Det är också möjligt att definiera en gräns, t.ex. få bara de första 100 000 raderna. För att göra det, ändra bara SQL-frågan angående önskad gräns. Det nämnda paketet kommer att överväga dessa alternativ. Exempel:
queryString <- "SELECT * FROM table1 limit 100000"
Läsa data från MongoDB-databaser
För att ladda data från en MongoDB-databas till en R-dataframe använder du biblioteket MongoLite :
# Use MongoLite library:
#install.packages("mongolite")
library(jsonlite)
library(mongolite)
# Connect to the database and the desired collection as root:
db <- mongo(collection = "Tweets", db = "TweetCollector", url = "mongodb://USERNAME:PASSWORD@HOSTNAME")
# Read the desired documents i.e. Tweets inside one dataframe:
documents <- db$find(limit = 100000, skip = 0, fields = '{ "_id" : false, "Text" : true }')
Koden ansluts till servern HOSTNAME
som USERNAME
med PASSWORD
, försöker öppna databasen TweetCollector
och läsa samlingens Tweets
. De fråge försöker läsa fältet, dvs kolumnen Text
.
Resultaten är ett dataram med kolumner som den avgivna datauppsättningen. I fallet med detta exempel innehåller dataframe kolumnen Text
, t.ex. documents$Text
.