python - 您如何将 SQLite 表读入 dask 数据帧?
问题描述
我正在尝试将 SQLite 表读入 dask 数据帧。我看到有一个函数,dask.dataframe.read_sql_table()
我对 index_col 参数的作用或使用方式感到困惑。非常感谢这个参数如何工作的几个例子。
解决方案
index_col 指的是如何进行 Dask 分区,这意味着如果 index_col 是分类变量的列,比如字符串,那么每个分区将是强的唯一值。如果它是数字,则从 bytes_per_chunk 或 npartitions 推断分区。最佳用例场景是提供字符串类型。这是一个 uid 是字符串的示例:
import sqlite3
import pandas as pd
import dask.dataframe as ddf
# ~~ Create sqlite table ~~ #
path_to_db = "c:\\test.db"
conn = sqlite3.connect(path_to_db)
cursor = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS test
(uid TEXT,
col_1 INTEGER''')
c.execute("insert into test values (“A”,2)")
c.execute("insert into test values (“A”,3)”)
c.execute("insert into test values (“A”,4)”)
c.execute("insert into test values (“B”,2)”)
c.execute("insert into test values (“B”,1)”)
conn.commit()
# ~~ Dask query using index_col ~~ #
daskDF = ddf.read_sql_table('test', conn, index_col='uid')
推荐阅读
- angular - 在 Ionic 4(Angular 和 Cordova)应用程序(加上 Firebase 身份验证)上访问 iOS/Android 上的 Google API
- php - 连接到数据库的PHP代码未运行
- ios - 使用麦克风的音频录制屏幕视频
- amazon-web-services - AWS Application Load Balancer 究竟如何执行运行状况检查?
- ngrx - Ngrx/data 似乎干扰了减速器
- powershell - 仅在包含特定关键字的文件上设置 Acl
- sql - 从一个领域消除 < 6 个月的结果,同时不影响其他领域
- javascript - 如何使用 jQuery 或 JavaScript 选择和取消选择复选框
- docker - WSL Alpine:无法运行 docker/更改日期时间
- mysql - 算在 SELECT DISTINCT 查询中吗?