`
kanwoerzi
  • 浏览: 1647832 次
文章分类
社区版块
存档分类
最新评论

python dataformat.py通用数据格式转化脚本

 
阅读更多


需求:在进行hadoop测试时,需要造大量数据,例如某个表存在56列,但实际程序逻辑只适用到某几列,我们造的数据 也只需要某几列

构造几列数据,转化为对应数据表格式

涉及模块:os,getopt,sys

输入:源格式,文本文件

输出:目标格式,文本文件



使用说明:

功能:可指定输入分隔,输出分隔,无配置字段填充,某列默认值

可按顺序填充,也可乱序映射填充

输入:输入文件路径

选项:

-i “path”

必设

输入文件路径

-t n

必设

目标数据表总列数

-a “r1,r2”

必设

将要填充的列号列表,可配置默认值,可配置映射

-o “path”

可选

输出文件路径,默认为 输入文件路径.dist

-F “IFS”

可选

输入文件中字段域分隔符,默认\t

-P ”OFS”

可选

输出文件中字段域分隔符,默认\t

-f “”

可选

指定未配置列的填充内容,默认为空

-h

单独

查看帮助信息

列填充的配置示例:

普通用法【最常用】

命令:./dataformat.py –i in_file –t 65 -a “22,39,63” –F “^I” –P “^A” –f “0”

说明:

  1. in_file中字段是以\t分隔的[可不配-F,使用默认]。
  2. 将in_file的第1,2,3列分别填充到in_file.dist[use default]的第22,39,63列
  3. in_file.dist共65列,以^A分隔,未配置列以0填充
  4. -a中顺序与源文件列序有关,若-a “39,22,63” 则是将第1列填充到第39列,第二列填充到22列,第3列填充到63列
列默认值用法:【需要对某些列填充相同的值,但不想在源文件中维护】

命令: ./dataformat.py -i in_file –t 30 –a “3=tag_1,9,7,12=0.0” –o out_file

说明:

  1. in_file以\t分隔,输出out_file以\t分隔
  2. 将in_file的第1列,第2列填充到out_file的第9列,第7列
  3. out_file共30列,第3列均用字符串”tag_1”填充,第12列用0.0填充,其他未配置列为空
  4. 注意:默认值 的取值,若是使用到等号和冒号,需转义,加 \= \:
列列乱序映射:

命令:./dataformat.py –i in_file –t 56 –a “3:2,9,5:3,1=abc,11”

说明:

  1. 分隔,输入,输出,同上…..
  2. 冒号前面为输出文件列号,后面为输入文件列号
  3. 目标文件第3列用输入文件第2列填充,目标文件第5列用输入文件第3列填充
  4. 目标文件第一列均填充“abc”
  5. 目标文件第9列用输入文件第1列填充,第11列用输入文件第4列填充【未配置映射,使用从头开始还没有被用过的列】
  6. 脚本会对简单的字段数量等映射逻辑进行检测,复杂最好全配上,使用默认太抽象


分享到:
评论

相关推荐

    python实例手册.py

    wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz tar xvf Python-2.7.8.tgz cd Python-2.7.8 ./configure --prefix=/usr/local/python27 make make install mv /usr/bin/python /usr/bin/...

    python_docx-0.8.10-py2.py3-none-any.whl

    估计这个安装包还只兼容python 2(python2 和python3差别还是挺大的,虽然现在python 3出来很久了,但是不少三方库还没有更新),因此需要自己找一个兼容的包:python_docx-0.8.6-py2.py3-none-any.whl。然后在...

    python 用到的systrace.py

    python 用到的systrace.py

    Python库 | lm_dataformat-0.0.15.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:lm_dataformat-0.0.15.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    python2.7中所用的get-pip.py文件+安装方法

    python2.7中所用的pip,大家快来下载啦啦啦啦啦!!!!

    python ipin.py

    python ipin.py

    summarize.py, 使用nltk总结文章的python 脚本.zip

    summarize.py, 使用nltk总结文章的python 脚本 summarize.py使用nltk总结文章的python 脚本。需要:python2.7/python 3nltk ( 如果使用 python 3,请参见下面nltk stopwords 语料库( python -c 'im

    get-pip.py

    $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本 $ sudo python get-pip.py # 运行安装脚本

    Python的log日志脚本.py

    里面包含终端日志和输出文件日志;

    convert.py:用于转换字节单位的python脚本

    从 python.org 下载 Python 3 步骤 2. 打开 IDE(Python 的默认 IDE),打开位于下载文件夹中的 convert.py 文件。 步骤 3. 按 F5(运行模块) 恭喜你成功启动Convert.py学分非常感谢以下人员。 布尔汗哈立德...

    yarn-utils.py

    计算yarn内存配置的python脚本yarn-util.py,此脚本有四个参数 参数 描述 -c CORES 每个节点CPU核数 -m MEMORY 每个节点内存总数(单位G) -d DISKS 每个节点的硬盘个数 -k HBASE 如果安装了Hbase则为True,否则为...

    python实现Apriori算法apriori.py和数据

    用python实现的Apriori算法和测试用的数据,可以直接将压缩包里面的apriori.py文件放到python安装文件夹lib中,进行调用。

    python扫描脚本.py

    这是一个基础的python扫描脚本,比较适合于刚入门的python爱好者,此脚本简单易懂,并且具有实用性,

    制作 hello.py:自定义问候语 Python 脚本.doc

    制作 hello.py:自定义问候语 Python 脚本.doc

    native_heapdump_viewer.py

    4.格式化堆栈数据 python native_heapdump_viewer.py --symbols symbols 00.txt >00.log python native_heapdump_viewer.py --symbols symbols 01.txt >01.log 对比00.log和01.log,查看内存增长的点

    data.py疫情数据解析

    data.py疫情数据解析

    安转python-pip的脚本get-pip.py

    pip是python语言相应包的安装工具,你在安装如python库如 pika时需要 python-pip工具,先要安装 python-pip,这是安转的python脚本,执行 sudo python get-pip.py 就安装了pip sudo python3 get-pip.py 就安装pip3

    Python中的导入数据模块input_data.py

    Python中的导入数据模块input_data.py

    Python.Data.Science.Cookbook.178439640

    You will then learn how to analyse your data with Python. The book then teaches you the concepts of data mining followed by an extensive coverage of machine learning methods. It introduces you to a ...

Global site tag (gtag.js) - Google Analytics