连接数据库并获取数据
Kotlin Notebook 支持最常见的 SQL 数据库:
通过 Kotlin DataFrame 库, Kotlin Notebook 可以连接到数据库, 执行 SQL 查询, 并导入查询结果, 用于后续操作.
开始前的准备工作
Kotlin Notebook 需要使用 Kotlin Notebook plugin, IntelliJ IDEA 默认捆绑并启用了这个插件.
如果无法使用 Kotlin Notebook 功能, 请确认启用了 plugin. 详情请参见 设置环境.
要遵循本教程进行操作, 需要执行以下步骤:
创建一个 新的 Kotlin Notebook.
在 Notebook 的第一个单元中, 为你的数据库添加 Java Database Connectivity (JDBC) 驱动程序依赖项.
例如, 要连接到 MariaDB 数据库, 请添加:
USE { dependencies("org.mariadb.jdbc:mariadb-java-client:$version") }导入 Kotlin DataFrame:
%use dataframe
连接到数据库
要连接到数据库, 请使用 DbConnectionConfig() 函数创建一个连接配置:
导入以下功能:
import org.jetbrains.kotlinx.dataframe.io.DbConnectionConfig import org.jetbrains.kotlinx.dataframe.schema.DataFrameSchema使用
DbConnectionConfig()函数, 定义连接参数(URL, username, password):val URL = "YOUR_URL" val USER_NAME = "YOUR_USERNAME" val PASSWORD = "YOUR_PASSWORD" val dbConfig = DbConnectionConfig(URL, USER_NAME, PASSWORD)
检查数据库 schema
在装载数据之前, 先检查数据库 schema, 了解你有哪些表, 它们包含哪些列. 你可以根据 schema 来决定将哪个表装载到 DataFrame 中.
要获取数据库中所有用户创建的表的 schema, 请使用 DataFrameSchema.readAllSqlTables() 函数:
装载数据
在你检查了数据库 schema 并选择好数据之后, 将数据装载到 DataFrame 中.
Kotlin DataFrame 提供了两种方式从数据库装载数据:
直接从表装载数据.
装载自定义 SQL 查询的结果.
两种方式都返回一个 DataFrame, 你可以在 Kotlin Notebook 中对它进行检查, 变换, 和分析.
从表装载数据
要从表装载数据, 请使用 DataFrame.readSqlTable() 函数.
下面的示例从 movies 表装载最前面的 100 行:
使用 SQL 查询装载数据
要在你的数据库上执行特定的 SQL 查询, 请使用 DataFrame.readSqlQuery() 函数. 当你需要在数据库中装载特定的列, 结合多个表, 过滤行, 或聚合数据时, 这种方式非常有用.
我们来获取由 Quentin Tarantino 导演的电影的数据集. 这个查询对每部电影选取电影的详细信息, 以及相关的体裁:
处理数据
将数据库中的数据装载到 DataFrame 之后, 你可以使用 DataFrame 的操作来处理获取的数据.
例如, 我们来操作上一节中的数据. 下面的代码执行以下操作:
替换
year列中缺失的值, 使用.fillNA()函数.将该列转换为
Int, 使用.convert()函数.只保留 2000 年之后发布的影片 使用
.filter()函数.
分析数据
使用 Kotlin Notebook 和 DataFrame 库, 对数据进行分组, 排序, 以及聚合, 帮助你发现和理解数据中的模式.
例如, 我们来从 actors 表读取演员数据, 找出前 20 个最常见的名字:
下一步做什么
学习使用 Kandy 库 进行数据可视化
阅读 在 Kotlin Notebook 中使用 Kandy 进行数据可视化, 学习数据可视化的更多知识
关于 Kotlin 中用于数据科学和分析的工具和资源的广泛的概述, 请参见 用于数据分析的 Kotlin 和 Java 库