如何将非常大的CSV数据集加载到d3中
正如标题所示,我有一个CSV文件(〜250MB和700k行),我无法将其加载到d3中。我试图按照我通常为csv文件的方式加载它,但没有运气。目前,它不会出错,并在控制台中获得一个空数据数组。不知道该文件是否太大或我加载不正确。将感谢任何帮助。谢谢。如何将非常大的CSV数据集加载到d3中
var dataset;
d3.csv("Consumer_Complaints.csv", function (error, data) {
if (error) {
console.log(error);
} else {
console.log("file load successful?");
console.log(data);
dataset = data;
}
});
这与D3没有任何关系,但带有JavaScript。 D3对它可以加载和解析的文件的大小没有限制。
Javascript运行(有一些例外)在客户端一侧。这意味着您的代码必须下载(如果在不同的服务器中)所有那些巨大的 CSV文件,而且不仅如此,它还必须解析大量对象中的成千上万行。这太简单了。
所以,常识告诉我们思考:
- 用户的连接速度
- 用户的处理能力
- 用户的耐心在一个空白的屏幕分钟盯着,等到数据被下载/解析。
这是一个加载巨大CSV文件的演示(从data.gov站点),您可以在控制台中看到加载的数据量。我也把console.time
显示下载和解析文件所需的总时间(如果你有耐心等到年底,我没有):
console.time("totalTime:");
d3.csv("https://data.consumerfinance.gov/api/views/s6ew-h6mp/rows.csv")
.on("progress", function(evt) {
console.log("Amount loaded: " + evt.loaded)
})
.get(function(data) {
console.timeEnd("totalTime:");
});
<script src="https://d3js.org/d3.v4.min.js"></script>
非常感谢您使用Gerardo,看起来我需要首先处理我的数据,并创建更小的数据集,以供图形使用。 – sparta93
是的,这是最好的方法。 –
你是如何运行这个文件? Javascript(在浏览器中)无法访问您的本地文件系统。 –
@BurhanKhalid IIS通过Visual Studio – sparta93
想想DOM。看看[PapaParse](http://papaparse.com)。请勿粉碎机器的内存或点击浏览器的硬编码限制:) –