2019独角兽企业重金招聘Python工程师标准>>>

环境: 0.10.0
     COGROUP : 2+个关系中做分组

最近做一个PIG类的项目,重新看了下PIG,顺便做总结。看到COGROUP时感觉有些问题

官方:http://pig.apache.org/docs/r0.8.1/piglatin_ref2.html

A = load 'student' as (name:chararray, age:int, gpa:float);
B = load 'student' as (name:chararray, age:int, gpa:float);
dump B;
(joe,18,2.5)
(sam,,3.0)
(bob,,3.5)X = cogroup A by age, B by age;
dump X;
(18,{(joe,18,2.5)},{(joe,18,2.5)})
(,{(sam,,3.0),(bob,,3.5)},{})
(,{},{(sam,,3.0),(bob,,3.5)})

很难理解的是为什么age是空的会有2条数据?参考其他博客看下COGROUP的用法,发现不是这样。

编码无悔博客:http://www.codelast.com/?p=3621

后来自己造了一批数据来尝试没有空值和有空值的COGROUP.

CA:(jack,32,run)(liza,22,eat)(tom,20,mouse)CB:(jack,32,run)(jerry,10,steal)(tom,20,mouse)COGROUP:(tom,{(tom,20,mouse)},{(tom,20,mouse)})(jack,{(jack,32,run)},{(jack,32,run)})(liza,{(liza,22,eat)},{})(jerry,{},{(jerry,10,steal)})

加一个有空值的字段。

 CA:(jack,32,run)(liza,22,eat)(,20,mouse)CB:(jack,32,run)(jerry,10,steal)(,20,mouse)COGROUP:(jack,{(jack,32,run)},{(jack,32,run)})(liza,{(liza,22,eat)},{})(jerry,{},{(jerry,10,steal)})(,{(,20,mouse)},{})(,{},{(,20,mouse)})

分别加M和N个空值字段,数据量不会出现M*N个空值吧?不是2个就是个大坑,会放大数据量。

CA:(jack,32,run)(liza,22,eat)(,200,mouse)(,201,mouse)(,202,mouse)(,203,mouse)(,204,mouse)CB:(jack,32,run)(jerry,10,steal)(,301,mouse)(,302,mouse)(,303,mouse)(,304,mouse)(,305,mouse)(,306,mouse)(,307,mouse)COGROUP:(jack,{(jack,32,run)},{(jack,32,run)})(liza,{(liza,22,eat)},{})(jerry,{},{(jerry,10,steal)})(,{(,200,mouse),(,201,mouse),(,202,mouse),(,203,mouse),(,204,mouse)},{})(,{},{(,301,mouse),(,302,mouse),(,303,mouse),(,304,mouse),(,305,mouse),(,306,mouse),(,307,mouse)})

还好,是个坑,但是没有放大数据量。官方已经有人提交了patch:https://issues.apache.org/jira/browse/PIG-361

转载于:https://my.oschina.net/wangjiankui/blog/263072

PIG 中COGROUP中的空值验证相关推荐

  1. vue中axios如何实现token验证

    title: vue中axios如何实现token验证 date: 2018-02-08 17:50:07 tags: [axios,vue] 继上篇实现Auth认证之后,然后每个跳转页面都会在后端验 ...

  2. centos7中安装、配置、验证、卸载redis

    本文介绍在centos7中安装.配置.验证.卸载redis等操作,以及在使用redis中的一些注意事项. 一 安装redis 1 创建redis的安装目录 利用以下命令,切换到/usr/local路径 ...

  3. 机器学习中的训练集,验证集及测试集的关系

     机器学习中的训练集,验证集及测试集的关系                          作者同类文章X 最近在看机器学习的东西发现验证集的(Validation set) 有时候被提起到,以 ...

  4. flask中的CBV , flask-session在redis中存储session , WTForms数据验证 , 偏函数 , 对象里的一些小知识...

    flask中的CBV , flask-session在redis中存储session , WTForms数据验证 , 偏函数 , 对象里的一些小知识 flask中的CBV写法 后端代码 # 导入vie ...

  5. ASP.NET的MVC中使用Cookie做身份验证(附代码下载)

    场景 ASP.NET的MVC中使用Session做身份验证(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1071 ...

  6. 【机器学习】图解机器学习中的 12 种交叉验证技术

    今天我给大家盘点下机器学习中所使用的交叉验证器都有哪些,用最直观的图解方式来帮助大家理解他们是如何工作的. 数据集说明 数据集来源于kaggle M5 Forecasting - Accuracy[1 ...

  7. 转:SqlServer中的datetime类型的空值和c#中的DateTime的空值的研究

    SqlServer中的datetime类型的空值和c#中的DateTime的空值的研究 在SqlServer 2000中datetime 的空值即默认值为1900-01-01 00:00 :00,C# ...

  8. Javascript中使用正则表达式进行数据验证

    Javascript中使用正则表达式进行数据验证 <script language="javascript">  function checkMobile(mobile ...

  9. 如何使用Java和XML Config在Spring Security中启用HTTP基本身份验证

    在上一篇文章中,我向您展示了如何在Java应用程序中启用Spring安全性 ,今天我们将讨论如何使用Spring Security 在Java Web应用程序中启用Basic HTTP身份验证 . 如 ...

最新文章

  1. 使用Google Closure DepsWriter生成JS依赖文件(二)
  2. 使用Zabbix监控ZooKeeper服务的健康状态
  3. NYOJ 682 初学者的烦恼
  4. amp 调用链_调用链选型之Zipkin,Pinpoint,SkyWalking,CAT
  5. linux实用小功能
  6. C#——orm-FulentData(sqlite3)——异常捕获
  7. 一篇文章搞定:扫码登录实现原理
  8. 文字处理技术:视图坐标都是在父视图的相对坐标
  9. 诊断(UDS)协议栈设计-系列讲解
  10. 离线 维基百科 android,维基百科离线版(Kiwix)
  11. starlink卫星轨道预报
  12. 植物大战僵尸全明星服务器维修多长时间,植物大战僵尸全明星常见问题怎么解决?...
  13. Android手机投屏后没有声音,乐播投屏电视没有声音怎么办_乐播投屏电视没有声音手机有声音解决办法_3DM手游...
  14. Acwing:我在哪(二分+字符串哈希 Python)
  15. 网站实现快速排名的原理与影响
  16. 2019年年终个人总结
  17. 红杉资源称斯凯收集下跌空间仍大:不情愿加入
  18. 集货运输优化:数学建模步骤,Python实现蚁群算法(解决最短路径问题), 蚁群算法解决旅行商问题(最优路径问题),节约里程算法
  19. 极路由2运行python安装_极路由4pro(HC5962)安装python
  20. javaweb springboot vue.js酒店预订系统源码

热门文章

  1. git 查看公共commit_git使用点滴:如何查看commit的内容
  2. 对时序逻辑电路采用不同描述方式,ISE综合出来的电路(RTL Schematic)比较(以模5计数器为例)
  3. 掌握 Linux 调试技术【转】
  4. github的pull request是指什么意思?有什么用处
  5. Spring xml 注入静态变量
  6. 更改ORACLE归档路径及归档模式
  7. ***检测与防护(IDS/IPS)
  8. EasyUI权限系统
  9. 活动目录实战系列六(win98客户端加入域)
  10. 现场总线和工业以太网