天天看点

《Clojure数据分析秘笈》——1.6节从JDBC数据库读取数据

本节书摘来自华章社区《clojure数据分析秘笈》一书中的第1章,第1.6节从jdbc数据库读取数据,作者(美)eric rochester,更多章节内容可以访问云栖社区“华章社区”公众号查看

1.6 从jdbc数据库读取数据

从关系型数据库中读入数据仅比从excel中复杂一点,并且大多数外部编译主要涉及连接数据库。

1.6.1 准备工作

首先,在leiningen project.clj文件中列明依赖。还需要引入数据库驱动库。在本例中,所使用的是org.xerial/sqlite-jdbc。

《Clojure数据分析秘笈》——1.6节从JDBC数据库读取数据

1.6.2 具体实现

加载数据的过程并不复杂,通过使用包装器程序会将这个过程变得更简单。

创建一个函数,参数为数据库连接映射和表名,返回值为从表中得到的数据集:

《Clojure数据分析秘笈》——1.6节从JDBC数据库读取数据

1.6.3 实现原理

load-table-data函数使用clojure.java.jdbc/with-connection建立了一个数据库连接。它创建了一个用以查询表中传入的所有域的sql查询。然后,使用clojure.java.jdbc/with-query-results获取结果。每一行结果都是列名与值的映射序列。这个序列通过incanter.core/to-dataset装入数据集中。

1.6.4 更多信息