Pig的数据类型能够分为两种:一种是scalar类型,包含单一的value,一种是complex类型,包含有其他的类型。

对于scalar类型:

int,long,float,double,chararray(取代了string),bytecharray.

复杂点的类型:

1、Map(我用python编写的对应的map总是出现问题,纠结了好久还是没有纠结好~~~才纠结好)书上的介绍:map是chararray(作为key)与其他数据元素的映射关系(作为value),其他的数据元素的类型为pig支持的数据类型,也包括复杂的数据类型。因为Pig并不知道value的类型,所以它假定这个为bytearray类型,但是真是的类型可能不是这样的,如果你知道这个value的类型,或者你希望是某个类型,你可以强制转换(cast)它。如果你不转换,Pig会以它认为的类型来定义,书的后面也有写Pig如何处理它不知道的类型。默认的情况下,没有要求values的必须是同一种类型。Pig0.9之后,可以申请values为一种类型。

map的形式是:key,value之间由#隔开,每一对之间由逗号隔开,这些pairs由中括号括起来。

如:['name'#'bob', 'age'#55]。

记下我的程序:

          line = '';
regulation = regulations.split(',');
regulation.remove('');
for re in regulation:
line = line + re.replace(':', '#') + ',';
line = line[len(line) - 1:];
regulationMap = [line];

这个程序里面的regulationMap就可以当作一个map来使用了。

其他的:返回map,写成这种形式:@outputSchema("mapvalue: []"),在pig里面使用的时候用flatten。(后一个还没有仔细用。)

涉及到map的还有两个问题:1、在pig,python的udf里面能不能读文件,每次读文件,都出错?2、flatten之后的数据跟别的数据join之后又问题。这个也还没有解决。

用describe看一个变量数据:describe variableValue,可以知道其schema的组成。

注意:flatten之后的数据可以用$0,$1等等来代表其第几个schema。

map还有很多需要注意的地方,以后碰到再写。

2、Tuple: 是有序集合,能够被分为好几个fields,每一个field包含一个元素,这些元素可以是任意类型,可以不是相同的类型。可以同为下标进行访问。tuple里面的value可以跟相应的type进行关联。tuple形式:小括号,每个元素之间逗号:('b', 55),两个元素。

bag:

先不写了。

sql:

http://www.cnblogs.com/wang-123/archive/2012/01/05/2312676.html

2014-08-05 pig的更多相关文章

  1. E2 2014.08.05 更新日志

    增加功能 增加手机.平板兼容模块,用手机平板也能正常登陆和使用软件 介绍  演示 对数据库全面优化,全面提升数据量很大时统计分析的性能 完善功能 销售分析增加按商品分类分析 完善客户明细窗口的客户信息 ...

  2. http://www.blogjava.net/xylz/archive/2013/08/05/402405.html

    http://www.blogjava.net/xylz/archive/2013/08/05/402405.html

  3. http://tedhacker.top/2016/08/05/Spring%E7%BA%BF%E7%A8%8B%E6%B1%A0%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95/

    http://tedhacker.top/2016/08/05/Spring%E7%BA%BF%E7%A8%8B%E6%B1%A0%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%9 ...

  4. app后端设计(11)-- 系统架构(2014.12.05更新)

    个人认为,在小型的创业团队中,特别是以应用产品为主,在架构后台的时候,需要集中精力解决自身业务上的问题,不是花时间解决第三方已经解决的问题,简单点来说,就是能用第三方服务就使用第三方的服务.基于这个原 ...

  5. app后端设计(3)--短信,邮件,推送服务(2014.12.05更新)

    在app的后端设计中,免不了消息的推送,短信,邮件等服务,下面就个人的开发经验谈谈这方面. (1)最重要的是,各种推送一定要放在队列系统中处理,不然会严重影响api的响应时间. (2)短信方面 以前我 ...

  6. 新手C#类、对象、字段、方法的学习2018.08.05

    类:具有相似属性和方法的对象的集合,如“人”是个类. 对象(实例):对象是具体的看得见摸得着的,如“张三”是“人”这个类的对象.(new Person()开辟了堆空间中,=开辟了栈空间,变量P存放在该 ...

  7. 新手C#s.Split(),s.Substring(,)以及读取txt文件中的字符串的学习2018.08.05

    s.split()用于字符串分割,具有多种重载方法,可以通过指定字符或字符串分割原字符串成为字符串数组. //s.Split()用于分割字符串为字符串数组,StringSplitOptions.Rem ...

  8. js 时间 Fri Dec 12 2014 08:00:00 GMT+0800

    第一种var d = new Date('Fri Dec 12 2014 08:00:00 GMT+0800'); ) + '-' + d.getDate() + ' ' + d.getHours() ...

  9. Image Processing and Computer Vision_Review:A survey of recent advances in visual feature detection(Author's Accepted Manuscript)——2014.08

    翻译 一项关于视觉特征检测的最新进展概述(作者已被接受的手稿) 和A survey of recent advances in visual feature detection——2014.08内容相 ...

  10. 2021.08.05 P1738 洛谷的文件夹(树形结构)

    2021.08.05 P1738 洛谷的文件夹(树形结构) P1738 洛谷的文件夹 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.树!! 题意: 给出n个网页路径,求 ...

随机推荐

  1. JavaScript 语言基础知识点总结

    网上找到的一份JavaScript 语言基础知识点总结,还不错,挺全面的. (来自:http://t.cn/zjbXMmi @刘巍峰 分享 )  

  2. bzoj 3784: 树上的路径 堆维护第k大

    3784: 树上的路径 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 88  Solved: 27[Submit][Status][Discuss] ...

  3. Excel列表部分列表隐藏与取消隐藏

    Excel列表部分列表隐藏与取消隐藏 2014-2-19 隐藏:选中需要隐藏的列(选中A.B.C....),右键单击所选部分,选择"隐藏"即可. 取消隐藏:从A选中至所见表格最后的 ...

  4. 当函数没有return时错误

    error:control reaches end of non-void function 在对应函数+return   :  即可

  5. C# Read/Write another Process' Memory ZZ

    Today's tutorial is about...processes' memory! In this article I'll show you how to read/write a pro ...

  6. 如何将数据库中已有表导入到powerDesigner生成pdm文件

    1.create new PDM: 2.select database menu; 3.click Reverse  Engineer database :4.then choose your scr ...

  7. java基础(十七)集合(四)

    这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助! 由于代码是分模块的上传非常的不便.也比较多,讲的也是 ...

  8. 白帽子讲Web安全2.pdf

    XSS构造技巧 利用字符编码: var redirectUrl="\";alert(/XSS/);"; 本身没有XSS漏洞,但由于返回页面是GBK/GB2312编码的“% ...

  9. stl binary search

    stl binary search */--> pre { background-color: #2f4f4f;line-height: 1.6; FONT: 10.5pt Consola,&q ...

  10. 《A First Course in Abstract Algebra with Applications》-chaper1-数论

    由于笔者在别的专栏多次介绍过数论,这里在<抽象代数基础教程>的专栏下,对于chaper1数论这一章节介绍的方式不那么“入门”. 首先来介绍一个代数中常用也是非常重要的证明方法:数学归纳法. ...