课程表

Apache Pig 基础

Apache Pig 诊断运算符

Apache Pig 分组和连接

Apache Pig 合并和拆分

Apache Pig 过滤

Apache Pig 排序

Pig Latin 内置函数

Apache Pig 其他执行模式

工具箱
速查手册

Cross运算符

当前位置:免费教程 » 大数据/云 » Apache Pig

CROSS 运算符计算两个或多个关系的向量积。本章将以示例说明如何在Pig Latin中使用cross运算符。

语法

下面给出了 CROSS 运算符的语法。

  1. grunt> Relation3_name = CROSS Relation1_name, Relation2_name;

假设在HDFS的 /pig_data/ 目录中有两个文件,即 customers.txt orders.txt ,如下所示。

customers.txt

  1. 1,Ramesh,32,Ahmedabad,2000.00
  2. 2,Khilan,25,Delhi,1500.00
  3. 3,kaushik,23,Kota,2000.00
  4. 4,Chaitali,25,Mumbai,6500.00
  5. 5,Hardik,27,Bhopal,8500.00
  6. 6,Komal,22,MP,4500.00
  7. 7,Muffy,24,Indore,10000.00

orders.txt

  1. 102,2009-10-08 00:00:00,3,3000
  2. 100,2009-10-08 00:00:00,3,1500
  3. 101,2009-11-20 00:00:00,2,1560
  4. 103,2008-05-20 00:00:00,4,2060

将这两个文件加载到Pig中,通过关系 customers  orders,如下所示。

  1. grunt> customers = LOAD 'hdfs://localhost:9000/pig_data/customers.txt' USING PigStorage(',')
  2. as (id:int, name:chararray, age:int, address:chararray, salary:int);
  3. grunt> orders = LOAD 'hdfs://localhost:9000/pig_data/orders.txt' USING PigStorage(',')
  4. as (oid:int, date:chararray, customer_id:int, amount:int);

现在让我们使用 cross 运算符获得这两个关系的向量积,如下所示。

  1. grunt> cross_data = CROSS customers, orders;

验证

使用 DUMP 运算符验证关系 cross_data ,如下所示。

  1. grunt> Dump cross_data;

输出

它将产生以下输出,显示关系 cross_data 的内容。

  1. (7,Muffy,24,Indore,10000,103,2008-05-20 00:00:00,4,2060)
  2. (7,Muffy,24,Indore,10000,101,2009-11-20 00:00:00,2,1560)
  3. (7,Muffy,24,Indore,10000,100,2009-10-08 00:00:00,3,1500)
  4. (7,Muffy,24,Indore,10000,102,2009-10-08 00:00:00,3,3000)
  5. (6,Komal,22,MP,4500,103,2008-05-20 00:00:00,4,2060)
  6. (6,Komal,22,MP,4500,101,2009-11-20 00:00:00,2,1560)
  7. (6,Komal,22,MP,4500,100,2009-10-08 00:00:00,3,1500)
  8. (6,Komal,22,MP,4500,102,2009-10-08 00:00:00,3,3000)
  9. (5,Hardik,27,Bhopal,8500,103,2008-05-20 00:00:00,4,2060)
  10. (5,Hardik,27,Bhopal,8500,101,2009-11-20 00:00:00,2,1560)
  11. (5,Hardik,27,Bhopal,8500,100,2009-10-08 00:00:00,3,1500)
  12. (5,Hardik,27,Bhopal,8500,102,2009-10-08 00:00:00,3,3000)
  13. (4,Chaitali,25,Mumbai,6500,103,2008-05-20 00:00:00,4,2060)
  14. (4,Chaitali,25,Mumbai,6500,101,2009-20 00:00:00,4,2060)
  15. (2,Khilan,25,Delhi,1500,101,2009-11-20 00:00:00,2,1560)
  16. (2,Khilan,25,Delhi,1500,100,2009-10-08 00:00:00,3,1500)
  17. (2,Khilan,25,Delhi,1500,102,2009-10-08 00:00:00,3,3000)
  18. (1,Ramesh,32,Ahmedabad,2000,103,2008-05-20 00:00:00,4,2060)
  19. (1,Ramesh,32,Ahmedabad,2000,101,2009-11-20 00:00:00,2,1560)
  20. (1,Ramesh,32,Ahmedabad,2000,100,2009-10-08 00:00:00,3,1500)
  21. (1,Ramesh,32,Ahmedabad,2000,102,2009-10-08 00:00:00,3,3000)-11-20 00:00:00,2,1560)
  22. (4,Chaitali,25,Mumbai,6500,100,2009-10-08 00:00:00,3,1500)
  23. (4,Chaitali,25,Mumbai,6500,102,2009-10-08 00:00:00,3,3000)
  24. (3,kaushik,23,Kota,2000,103,2008-05-20 00:00:00,4,2060)
  25. (3,kaushik,23,Kota,2000,101,2009-11-20 00:00:00,2,1560)
  26. (3,kaushik,23,Kota,2000,100,2009-10-08 00:00:00,3,1500)
  27. (3,kaushik,23,Kota,2000,102,2009-10-08 00:00:00,3,3000)
  28. (2,Khilan,25,Delhi,1500,103,2008-05-20 00:00:00,4,2060)
  29. (2,Khilan,25,Delhi,1500,101,2009-11-20 00:00:00,2,1560)
  30. (2,Khilan,25,Delhi,1500,100,2009-10-08 00:00:00,3,1500)
  31. (2,Khilan,25,Delhi,1500,102,2009-10-08 00:00:00,3,3000)
  32. (1,Ramesh,32,Ahmedabad,2000,103,2008-05-20 00:00:00,4,2060)
  33. (1,Ramesh,32,Ahmedabad,2000,101,2009-11-20 00:00:00,2,1560)
  34. (1,Ramesh,32,Ahmedabad,2000,100,2009-10-08 00:00:00,3,1500)
  35. (1,Ramesh,32,Ahmedabad,2000,102,2009-10-08 00:00:00,3,3000)
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号