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 查看哈希值)