dask_expr.read_sql_table

dask_expr.read_sql_table

dask_expr.read_sql_table(table_name, con, index_col, divisions=None, npartitions=None, limits=None, columns=None, bytes_per_chunk='256 MiB', head_rows=5, schema=None, meta=None, engine_kwargs=None, **kwargs)[源代码]

将 SQL 数据库表读取到 DataFrame 中。

如果 divisionsnpartitions 都没有给出,将确定前几行的内存占用,并使用大小约为256MB的分区。

参数
表名str

数据库中SQL表的名称。

constr

数据库连接的完整 sqlalchemy URI

index_colstr

成为索引并定义分区的列。应在 SQL 服务器中为索引列,并且为任何可排序类型。如果类型为数字或时间,则可以从 npartitionsbytes_per_chunk 推断分区边界;否则必须提供明确的 divisions

字符串序列或 SqlAlchemy 列或 None

选择哪些列;如果为 None,则获取所有列。注意可以是 str 和 SqlAlchemy 列的混合。

模式str 或 None

将此传递给 sqlalchemy,以在 URI 连接中选择要使用的数据库模式

部门:序列

用于分割表格的索引列的值。如果给出,这将覆盖 npartitionsbytes_per_chunk。分割是用于定义分区的索引列的值边界。例如,divisions=list('acegikmoqsuwz') 可以用于按字典顺序将字符串列分成12个分区,隐含假设每个分区包含相似数量的记录。

npartitions整数

分区数量,如果未给出 divisions 。如果给出 limits ,则将在索引列的值之间线性分割;如果没有给出 limits ,则将在列的最大值和最小值之间分割。索引列必须是数值型或时间型才能生效。

限制: 2元组或无

手动给出用于 npartitions 的值的上限和下限;如果为 None,则首先从数据库中获取最大值/最小值。如果给出上限,则包含上限。

bytes_per_chunkstr 或 int

如果 divisionsnpartitions 都为 None,这是每个分区的目标大小,以字节为单位

head_rows整数

推断数据类型时要加载的行数,以及每行的内存

meta空的 DataFrame 或 None

如果提供,不要尝试推断数据类型,而是使用这些类型,强制在加载时转换所有块

engine_kwargs字典或无

sqlalchemy 的特定数据库引擎参数

kwargsdict

传递给 pd.read_sql() 的额外参数

返回
dask.dataframe

参见

read_sql_query

将 SQL 查询读取到 DataFrame 中。

示例

>>> df = dd.read_sql_table('accounts', 'sqlite:///path/to/bank.db',
...                  npartitions=10, index_col='id')