首页 > 解决方案 > 您如何将 SQLite 表读入 dask 数据帧?

问题描述

我正在尝试将 SQLite 表读入 dask 数据帧。我看到有一个函数,dask.dataframe.read_sql_table()

我对 index_col 参数的作用或使用方式感到困惑。非常感谢这个参数如何工作的几个例子。

标签: pythonsqlitedask

解决方案


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')

推荐阅读