我有一个拥有5700万行和23列的数据集。有一个有不同鸟类的物种名称的列(大约有2000个独特的名字),我想为每个独特的物种名称提取两列数据(纬度,经度),并且写入每个独特物种名称的纬度/经度数据物种,以物种名称作为文件名称。从R,我知道的唯一语言,这需要很长的时间。这个任务适合的代码是什么?SQL循环读取,然后将数据写入文件
在这里,我尝试了一些伪代码来证明什么,我猜的代码可能看起来像,大致为:
FOR i IN 1:unique(species_name)
SELECT latitude,longitude WHERE species_name=[i]
WRITE [some code that writes a text file with species name as the file name]
LOOP END;
我想我可以做这样的事情在终端上的OSX?
编辑20111211: 这里是来自R我的工作流程:
require(RMySQL);
require(plyr)
drv <- dbDriver("MySQL")
con <- dbConnect(drv, user = "asdfaf", dbname = "test", host = "localhost")
splist <- read.csv("splist_use.csv")
sqlwrite <- function(spname) {
cat(spname) g1 <- dbGetQuery(con
, paste("SELECT col_16,col_18 FROM dat WHERE col_11='"
, spname, "'", sep="")
)
write.csv(g1, paste(spname, ".csv", sep=""))
rm("g1") }
l_ply(splist, sqlwrite, .progress="text")
你在使用什么SQL服务器?大多数提供出口功能,我认为在你的具体情况下,速度会快得多。 – UnhandledExcepSean
MySQL。我唯一的GUI界面是SequelPro。 – sckott
对,我可以出口,但是我必须过滤物种,然后出口,然后做2000次,这有点多。 – sckott