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 中。
如果
divisions
或npartitions
都没有给出,将确定前几行的内存占用,并使用大小约为256MB的分区。- 参数
- 表名str
数据库中SQL表的名称。
- constr
数据库连接的完整 sqlalchemy URI
- index_colstr
成为索引并定义分区的列。应在 SQL 服务器中为索引列,并且为任何可排序类型。如果类型为数字或时间,则可以从
npartitions
或bytes_per_chunk
推断分区边界;否则必须提供明确的divisions
。- 列字符串序列或 SqlAlchemy 列或 None
选择哪些列;如果为 None,则获取所有列。注意可以是 str 和 SqlAlchemy 列的混合。
- 模式str 或 None
将此传递给 sqlalchemy,以在 URI 连接中选择要使用的数据库模式
- 部门:序列
用于分割表格的索引列的值。如果给出,这将覆盖
npartitions
和bytes_per_chunk
。分割是用于定义分区的索引列的值边界。例如,divisions=list('acegikmoqsuwz')
可以用于按字典顺序将字符串列分成12个分区,隐含假设每个分区包含相似数量的记录。- npartitions整数
分区数量,如果未给出
divisions
。如果给出limits
,则将在索引列的值之间线性分割;如果没有给出limits
,则将在列的最大值和最小值之间分割。索引列必须是数值型或时间型才能生效。- 限制: 2元组或无
手动给出用于
npartitions
的值的上限和下限;如果为 None,则首先从数据库中获取最大值/最小值。如果给出上限,则包含上限。- bytes_per_chunkstr 或 int
如果
divisions
和npartitions
都为 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')