7.在Python中使用数据库
为了使用pandas read_SQL方法,必须提前建立与数据库的连接。
连接数据库最安全的方法是使用Python的SQLAlchemy包。
SQL本身就是一种语言,并且连接到数据库的方式取决于你正在使用的数据库。
8.Python中的数据工程
有时我们倾向于在数据作为Pandas DataFrame形式到达我们的项目之前,对其进行一些计算。
如果你正在使用数据库或从Web上抓取数据(并将其存储在某处),那么移动数据并对其进行转换的过程称为ETL(提取,转换,加载)。
你从一个地方提取数据,对其进行一些转换(通过添加数据来总结数据,查找均值,更改数据类型等),然后将其加载到可以访问的位置。
有一个非常酷的工具叫做Airflow,它非常善于帮助管理ETL工作流程。更好的是,它是用Python编写的,由Airbnb开发。
9. Python中的大数据工程
有时ETL过程可能非常慢。如果你有数十亿行数据(或者如果它们是一种奇怪的数据类型,如文本),可以使用许多不同的计算机分别进行处理转换,并在最后一秒将所有数据整合到一起。
这种架构模式称为MapReduce,它很受Hadoop的欢迎。
如今,很多人使用Spark来做这种数据转换/检索工作,并且有一个Spark的Python接口叫做PySpark。
MapReduce架构和Spark都是非常复杂的工具,这里我不详细介绍。只要知道它们的存在,如果你发现自己正在处理非常缓慢的ETL过程,PySpark可能会有所帮助。