8.2.2.3 连接并从数据库获取数据
3 分钟阅读
原文链接: https://kotlinlang.org/docs/data-analysis-connect-to-db.html
8.2.2.3 连接并从数据库获取数据
Kotlin DataFrame 库支持最常见的 SQL 数据库:
探索 GitHub 上的 Kotlin DataFrame SQL 示例。
开始之前
注意: 从 IntelliJ IDEA 2026.2 开始,Kotlin Notebook 将不再随 IDE 一起提供,也不再由 JetBrains 官方支持。源代码仍可在 GitHub 上获取。更多信息请参阅博客文章。
要学习本教程:
- 选择 File | New | Kotlin Notebook。
- 在笔记本的第一个代码单元中,为你的数据库添加 Java 数据库连接(JDBC)驱动依赖。
例如,要连接到 MariaDB 数据库,请添加:
| |
- 导入 Kotlin DataFrame:
| |
请在任何其他代码单元之前先运行包含 %use dataframe 这一行的代码单元,以确保 DataFrame 库及其 API 在笔记本中可用。
要学习本教程,你也可以把 DataFrame 用作 Gradle 或 Maven 依赖。
连接到数据库
要连接到数据库,请使用 DbConnectionConfig() 函数创建连接配置:
- 导入以下功能:
| |
- 使用
DbConnectionConfig()函数定义连接参数(URL、用户名、密码):
| |
提示: 关于连接 SQL 数据库的更多信息,请参阅 Kotlin DataFrame 文档中的从 SQL 数据库读取。
检查数据库模式
在加载数据之前,先检查数据库模式,了解你有哪些表以及它们包含哪些列。你可以利用这些模式决定把哪张表加载到 DataFrame 中。
要获取数据库中所有用户创建的表的模式,请使用 DataFrameSchema.readAllSqlTables() 函数:
| |
加载数据
检查完数据库模式并选定数据之后,把数据加载到 DataFrame 中。
Kotlin DataFrame 提供了两种从数据库加载数据的方式:
- 直接从表加载数据。
- 加载自定义 SQL 查询的结果。
两种方式都会返回一个 DataFrame,你可以对其进行检查、转换和分析。
从表加载数据
要从表加载数据,请使用 DataFrame.readSqlTable() 函数。
下面的示例从 movies 表加载前 100 行:
| |
使用 SQL 查询加载数据
要对数据库执行特定的 SQL 查询,请使用 DataFrame.readSqlQuery() 函数。当你需要在数据库中加载特定列、连接表、过滤行或聚合数据时,这种方式很有用。
我们来获取与昆汀·塔伦蒂诺执导的电影相关的特定数据集。这个查询选择电影详情,并为每部电影合并类型信息:
| |
处理数据
把数据库加载到 DataFrame 之后,你可以使用 DataFrame 操作来处理获取到的数据。
例如,我们来处理上一节中的数据。以下代码:
- 使用
.fillNA()函数替换year列中的缺失值。 - 使用
.convert()函数把该列转换为Int。 - 使用
.filter()函数只保留 2000 年之后上映的电影。
| |
分析数据
使用 DataFrame 库对数据分组、排序和聚合,从而发现并理解数据中的模式。
例如,我们从 actors 表中读取演员数据,并找出最常见的 20 个名字:
| |
接下来做什么
- 使用 Kandy 库探索数据可视化
- 在使用 Kandy 进行数据可视化中查找有关数据可视化的更多信息
- 关于 Kotlin 中可用于数据科学和分析的工具与资源的广泛概述,请参阅用于数据分析的 Kotlin 和 Java 库