mars.dataframe.read_sql_table#
- mars.dataframe.read_sql_table(table_name, con, schema=None, index_col=None, coerce_float=True, parse_dates=None, columns=None, chunksize=None, test_rows=5, chunk_size=None, engine_kwargs=None, incremental_index=True, use_arrow_dtype=None, partition_col=None, num_partitions=None, low_limit=None, high_limit=None)[来源]#
将SQL数据库表读取到DataFrame中。
给定一个表名和一个可连接的SQLAlchemy,返回一个DataFrame。 这个函数不支持DBAPI连接。
- Parameters
table_name (str) – 数据库中SQL表的名称。
con (SQLAlchemy 可连接的对象 或 str) – 数据库 URI 可以作为 str 提供。SQLite DBAPI 连接模式不支持。
schema (str, 默认 None) – 要查询的数据库中SQL模式的名称(如果数据库类型支持此功能)。如果为None,则使用默认模式(默认)。
index_col (str 或 list 的 str, 可选, 默认值: None) – 设置为索引的列(多重索引)。
coerce_float (bool, 默认是 True) – 尝试将非字符串、非数值对象(如 decimal.Decimal)的值转换为浮点数。可能导致精度丢失。
parse_dates (列表 或 字典, 默认值为 None) –
要作为日期解析的列名列表。
{列名: 格式 字符串}的字典,其中格式字符串在解析字符串时间时与 strftime 兼容,或者在解析整数时间戳时为 (D, s, ns, ms, us) 之一。{列名: 参数 字典}的字典,其中参数字典对应于pandas.to_datetime()的关键字参数。对于没有原生日期时间支持的数据库(如 SQLite)特别有用。
columns (list, 默认值 None) – 从 SQL 表中选择的列名列表。
chunksize (int, 默认值 None) – 如果指定,将返回一个迭代器,其中 chunksize 是每个块中包含的行数。请注意,这个参数仅保留用于兼容性。如果传递了非空值,将会报错。
test_rows (int, 默认 5) – 要获取的行数,以推断数据类型。
chunk_size (: int 或 tuple of ints, 可选) – 指定每个维度的块大小。
engine_kwargs (dict, 默认 None) – 额外的kwargs传递给sqlalchemy.create_engine
incremental_index (bool, 默认 True) – 如果没有指定 index_col,确保范围索引递增,如果设置为 False,将获得稍微更好的性能。
use_arrow_dtype (bool, default None) – 如果为True,使用arrow数据类型来存储列。
partition_col (str, default None) – 指定要拆分查询结果的列名。如果指定,则范围
[low_limit, high_limit]将被分成n_partitions个相等长度的块。我们不保证块的大小相等。当值为None时,OFFSET和LIMIT子句将用于截取查询结果。num_partitions (int, 默认 None) – 当指定了
partition_col时,将查询结果划分为的块数。low_limit (默认值 None) – 列
partition_col的范围下限。如果未指定,将执行查询以查询该列的最小值。high_limit (默认为 None) – 列
partition_col的范围的上限。如果未指定,将执行一个查询以查询该列的最大值。
- Returns
SQL 表以带标签的二维数据结构返回。
- Return type
另请参阅
read_sql_query将SQL查询读取到DataFrame中。
read_sql将SQL查询或数据库表读取为DataFrame。
备注
任何带有时区信息的日期时间值将被转换为UTC。
示例
>>> import mars.dataframe as md >>> md.read_sql_table('table_name', 'postgres:///db_name')