Amazon AWS使用方法:
1.参照官网方法安装AWS-CLI
直接使用“pip install awscli”即可。
2.参照boto3 Documentation安装boto3
直接使用“pip install boto3”安装就行。
3.配置文件
先阅读官网,了解配置文件信息,进入终端:
使用”open -t ~/.aws/credentials”,先设置access token.
Amazon AWS使用方法:
1.参照官网方法安装AWS-CLI
直接使用“pip install awscli”即可。
2.参照boto3 Documentation安装boto3
直接使用“pip install boto3”安装就行。
3.配置文件
先阅读官网,了解配置文件信息,进入终端:
使用”open -t ~/.aws/credentials”,先设置access token.
(Photo by Tianyi Ma on Unsplash)
客户需要用Python解决这样一个问题,读入一个3.4G大小的CSV文件,除首行记录外,将剩余行数记录中的K列,按照业务规则进行内容替换,处理完后生成一个新的CSV文件出来。
沟通了一番需求后,了解到CSV文件编码格式是”ISO 8859-1”;文件记录数大概有400多万行(拿到文件后我没敢用Excel打开看,怕卡死);首行是Header Cloumn,记录每一行数据的Layout;除首行外每一行记录都使用Tab键区分。
下面是我的分析思路:
CSV文件很大,不可能一次性读入内容,只能分块来读;首行是Header Column,读出来后需要单独标记不做处理;剩下400多万行中有一些需要替换(替换可以简单理解为将第K列的值由”Tencent”修改为”Alibaba”),具体哪些行,事先是不知道的;那最好就读一行处理一行。
(Photo by Kyle Hinkson on Unsplash)
国庆这几天没有出门,基本上都待在家里写代码和调程序了。答应了客户节后交货,花了好几天时间,反复在Docker里面做Airflow的测试,这两项以前都没有玩过,学习它的用法和测试,花了很多时间。
家人们经常不理解,为什么每天要花这么多时间在电脑面前?是不是效率太低了?
还真不是效率低,主要原因是软件开发这个职业,细节内容太多,一不小心很容易出错,碰到棘手的Bug,可能卡你半天,查原因和解决问题都非常耗费时间。
这几天调试下来,Docker的用法基本搞熟了,非常有收获。相比虚拟机,Docker确实太轻便了,拉取镜像制作容器,几分钟内就组装出来一个开发环境,简直发现了一片新大陆。
Airflow的DAG在Python3环境也跑通了,顺利迁移到了Python3环境。Python3读取CSV文件和Python2有很大差别,在CSV文件处理上也踩了好几个坑,收获了宝贵的经验,以后遇到这些都是小Case了。
今年一直专注在Python语言上做”单点突破”,虽然还没有达成我的目标,不过收获甚多,以前很多解决不了的问题现在都能解决了,自信心就这样一点点地建立起来;但确实还存在很多欠缺,比如说,我从来没有完整地做过一个Web开发项目,对于WSGI和Nginx的理解,看了很多例子,敲了很多程序,就是无法理解透彻,这些理解不透彻的地方,就是接下来需要努力的方向和目标吧。
(Photo by Iker Urteaga on Unsplash)
工作项目需要,最近在研究Airflow,Apache基金会下的一款任务流管理工具,基于Python而生,官网链接在此。这几天弄清楚了PythonOperator中不同Task之间如何传递参数,目前主要找到了两种方法。
第一种方法是使用Variable.set和Variable.get方法;第二种方法使用Xcoms。
(Photo by Eduardo Flores on Unsplash)
前几天在Python3里面调用Tushare的new_stocks接口,一直遇到这个报错”Length mismatch: Expected axis has 13 elements, new values have 12 elements”。
|
|
奇怪的是,这段代码在Python2里能够正常运行,不报错。
开始了定位Bug的奇妙之旅,首先发现错误是从Tushare包reference.py模块里_newstocks函数报出来的;根据报错信息关键字axis,推测出错行数应该在447-452之间。
最开始怀疑是两个版本获取的数据源有差异,将加上了