跳转到主要内容

Civis平台的数据摄入驱动器

项目描述

intake-civis

这是intake数据源,用于存储在Civis平台中的数据。

需求

civis-python
intake

安装

intake-civis已发布在PyPI上。您可以在终端运行以下命令进行安装

pip install intake-civis

用法

您可以使用YAML摄入目录指定Civis模式和表

sources:
  # An entry representing a catalog for an entire schema.
  postgres:
    driver: "civis_schema"
    args:
      database: "City of Los Angeles - Postgres"
      schema: "transporatation"
  # An entry representing a single table
  bike_trips:
    driver: "civis"
    args:
      database: "City of Los Angeles - Postgres"
      table: "bike_trips"
      schema: "transportation"

作为便利,还有一个顶级函数,可以从整个Redshift或PostgreSQL数据库创建目录。

您可以使用以下方式创建它

import intake_civis

redshift_cat = intake_civis.open_redshift_catalog()
postgres_cat = intake_civis.open_postgres_catalog()

然后,您可以使用这些目录深入到不同的模式和表,例如

bike_trips = postgres_cat.transportation.bike_trips.read()

有关更多示例,请参阅此演示笔记本

地理空间支持

Redshift和Postgres都支持地理空间值。我们可以通过在geometry参数中传递字符串或字符串列表,让源以GeoDataFrame的形式读取表/查询。您还可以传递一个GeoPandas兼容的crs参数来设置GeoDataFrame的坐标参考系统。当提供多个列时,GeoDataFrame的主要几何列假设为列表中的第一个。

CivisSchema对象尝试从数据库表元数据自动确定几何列和坐标参考系统。

Ibis支持

有时一个表可能太大,无法将其全部加载到内存中。在这种情况下,查询表的一部分很有用。Ibis是一个具有类似pandas API的生成SQL查询的工具。Civis表目录条目有一个to_ibis()函数,它提供了一个懒加载的Ibis表达式。然后,您可以使用它来查询更少的数据

# Get a lazy ibis object
bike_trips = postgres_cat.transportation.bike_trips.to_ibis()

# Subset it
bike_trips_subset = bike_trips[bike_trips.start_datetime > "2019-04-01"]

# Execute the query to get an in-memory dataframe:
df = bike_trips_subset.execute()

重要限制:由于Civis数据库的网络限制,您只能在平台中使用此功能。从您的本地机器将无法建立连接。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

intake-civis-0.2.0.tar.gz (12.2 kB 查看哈希值)

上传时间 源代码

构建分发

intake_civis-0.2.0-py3-none-any.whl (13.4 kB 查看哈希值)

上传时间 Python 3

支持者