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 (strliststr, 可选, 默认值: 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 (: inttuple 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时,OFFSETLIMIT子句将用于截取查询结果。

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