我有一些JSON格式的数据,我想对其进行一些可视化处理。数据(大约10MB的JSON)加载非常快,但将其重新塑造成可用的形式需要几分钟的时间,只有100,000行。我有一些工作,但我认为它可以做得更好。转换JSON数据的性能问题
从我的sample data开始,这可能是最容易理解的。
假设你在/tmp
运行以下命令:
curl http://public.west.spy.net/so/time-series.json.gz \
| gzip -dc - > time-series.json
你应该能够看到(过了一会儿)我的期望输出这里:
require(rjson)
trades <- fromJSON(file="/tmp/time-series.json")$rows
data <- do.call(rbind,
lapply(trades,
function(row)
data.frame(date=strptime(unlist(row$key)[2], "%FT%X"),
price=unlist(row$value)[1],
volume=unlist(row$value)[2])))
someColors <- colorRampPalette(c("#000099", "blue", "orange", "red"),
space="Lab")
smoothScatter(data, colramp=someColors, xaxt="n")
days <- seq(min(data$date), max(data$date), by = 'month')
smoothScatter(data, colramp=someColors, xaxt="n")
axis(1, at=days,
labels=strftime(days, "%F"),
tick=FALSE)
下面的算法答案是最大加速比来自哪里,但我发现RJSONIO在某些测试中比rjson快(并且在解析各种JSON结构时更可靠)。可能值得尝试一下 - 使用方法是相同的。 – Noah
感谢您的指针。我几乎任意挑选。 – Dustin