这两天在搞一个数据分析的小项目,自己想当然的认为数据量大,需要用一个快速保存和读取数据的工具,于是在网上想到了用feather, 于是就开始了一个复杂折腾的安装过程,中间遇到很多坑。
第一个坑:
由于数据分析环境是在一个内网(不能访问互联网),我想把feather安装到内网环境,于是从网上下了feather包装到内网,没想到他需要的一个pyarrow的依赖包,而这个依赖包没有下。
第二个坑:
我不知道feather到底需要多少依赖包,怕再出错,想着先在外网安好,然后把所有包都导出,最后整体放到内网环境安装,想法是好的,但实现的时候报错了,原来我的两边python版本不一致,导致部分包安装出错。
第三个坑:
于是,我把两边Python版本弄一致,都想弄成64位的python310,结果又出错了,原来 我的内网电脑是win7,而win7上面只适配python3.8以前的版本。
第四个坑:
我把两边python都换成了64位的python3.8,按照前面 的设想,终于安装好了,结果发现我内网电脑上的cx_Oracle不能用了,原来是因为cx_Oracle要用到的oci.dll是32位的,不能在64位的机子上跑。
第五个坑:
为了兼容cx_Oracle,我把两边环境都变成了32位python3.8,没想到pyarrow竟然只支持64位的python,也就是说feather也只支持64位python ! 也就是说我遇到了cx_Oracle与feather的矛盾,一个支持32位python,一个支持64位python,无语了。
这时候,我其实还有三个方案:
我现在决定的方案是放弃使用feather,虽然他在存储和速度上很快,但是他的优势不值得我花更多的时间去折腾他了,况且我测试了下我的数据,我实际需要的数据也不算多:一个月最多5万条数据,我需要分析40个月的数据,也就是说最多只有200万条的数据,就算是用csv,也不会慢很多。