Author: alitrack

ETL时遇到的坑之一

今天客户给的数据压缩包,先是在mac OSX上解压碰到乱码问题(已解决)(家中预览),然后发现一系列问题, 所有的数据开始都有等号(=) 部分数据结尾存在多余的逗号(,) 订单表字段不统一(部分文件缺少末尾字段,这也许是和上个问题有关系) 部分文件名命名错误,把订单明细命名成了订单 解决办法,使用sed批量去除头尾多余的字符(写了个简单的Windows批处理文件),并把订单和订单明细分到不同目录(原来有超过10个目录) @echo off @rem replace first md detail md order for /r %%i in (*宝贝*.csv) do @sed "s/^=//g" %%i |sed "s/,$//g">detail\%%~ni.txt for /r %%i…

Read More

xlwings – 让Python带着你的Excel一起飞

xlwings 是一款基于BSD协议的开源Python包,它让Excel调用Python或者Python调用Excel变得非常简单: Scripting: 像VBA那样实现Python与Excel的自动或者交互功能 Macros: 用清晰强大Python代码来替代来VBA写的凌乱的宏 UDFs: 用Python编写用户定义函数 (UDFs) (仅支持Windows). 完全支持Numpy arrays 和 Pandas Series/DataFrames 支持Windows和mac OSX。 Python 2.7 and 3.3+测试通过 安装,3选1: pip install xlwings conda install xlwings #如果使用Mac Excel…

Read More

Docker瘦身记

自从升级mac OSX 到Sierra, 免费版的Lantern就闪退,无法使用了,想尝试着在Docker里运行,于是在Github上闲逛,寻找合适的Lantern Docker, Lantern的Docker尝试了好几个,也自己动手制作了几个,但有一个共同的毛病,太大,我做的一个基于min-jessie版本的,也超过230M,今天碰巧发现了一个,竟然只有26.62M, Dockerfile内容非常简单,仅仅依赖busybox:glibc, FROM busybox:glibc #COPY ./lantern_linux_amd64 /lantern_linux_amd64 COPY ./lantern_linux_amd64.xz /lantern_linux_amd64.xz RUN xz -d /lantern_linux_amd64.xz COPY ./lib /lib COPY ./tmp /tmp EXPOSE 8787 CMD 26.62M的Docker,解压缩后的lantern_linux_amd64自己占了17M,查了下,依赖库只有4个,这让我对这种Docker的生成方式产生了浓厚的兴趣,于是网上寻找Docker瘦身的方法,没有想到竟然找到了,Squashing Docker…

Read More

blog-image

如何解决mac OSX解压缩乱码的问题

  mac OSX自带的解压缩工具在解压缩某些中文路径的zip压缩包会出现乱码,尝试命令行下的zip和7zip,同样的问题,后来想到我下载过The Unarchiver, 但却重来没有使用过,试了下,问题解决。 P.S. The Unarchiver 是一款开源免费的Archive Utility.app替代品,它几乎支持你所能想到的格式, Format Support level Notes Zip Full Full support for the normal zip format, with additional support for AES encryption, Zip64…

Read More

java里调用r的方法汇总

R语言中调用(执行)R语言有以下几种方式, rJava:R-to-Java的接口 rserve:R语言服务器(Shiny依赖它来搭建Server端应用程序) JRI:Java/R 接口,目前属于rJava的一部分 Renjin:基于JVM的R语言解析器 references, http://www.codophile.com/how-to-integrate-r-with-java-using-rserve/ http://www.rforge.net/rJava/ http://www.rforge.net/JRI/ http://docs.renjin.org/en/latest/library/moving-data-between-java-and-r-code.html http://www.renjin.org/ http://www.studytrails.com/RJava-Eclipse-Plugin/Execute-R-From-Java.jsp

Read More

PostgreSQL与交叉表查询

PostgreSQL提供了一个tablefunc 模块,内置了多个函数,其中就有crosstab(交叉表,又叫行转列,或者长表转宽表),具体使用参见PostgreSQL文档(中文,英文)。 如果不清楚生成的宽表有多少列,或者列太多,手工敲很容易吃力不讨好,那么可以借助这个函数(pivotcode)来简化工作, -- PL/pgSQL code to create pivot tables with automatic column names -- Eric Minikel, CureFFI.org - 2013-03-19 -- prerequisite: install the tablefunc module create extension tablefunc; --…

Read More

如何在mac OSX下的Docker里运行Linux桌面程序

在Docker里运行Linux的GUI程序,有两种方案,一个是依赖X11 forwarding,一个是使用novnc,这里介绍的是第一种情况 安装 brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 安装 、运行socat brew install socat socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\" 安装、运行,设置XQuartz 安装 Docker 拉取镜像 docker pull alitrack/firefox 运行 docker run --rm -e DISPLAY=$DISPLAY \…

Read More

在Docker里运行Docker

自从把mac上的docker升级后,就无法访问Carina 了,总是报错, client is newer than server (client API version: 1.24, server API version: 1.23) 这让我好是郁闷了一段时间,今天突发奇想,能不能在Docker里装个低版本的Docker呢?查找了下,发现原来官方已经帮做好了一个。 经过一番测试,成功运行了docker, docker run -dit --privileged --name docker docker:1.11.2-dind 然后把需要把下载的证书和配置文件复制到Docker容器里 docker cp alitrack.zip docker:/alitrack.zip 顺便说下,在Docker容器里运行 source…

Read More