Учебники

Apache Pig — кросс-оператор

Оператор CROSS вычисляет перекрестное произведение двух или более отношений. В этой главе на примере объясняется, как использовать кросс-оператор в Pig Latin.

Синтаксис

Ниже приведен синтаксис оператора CROSS .

grunt> Relation3_name = CROSS Relation1_name, Relation2_name;

пример

Предположим, что у нас есть два файла, а именно customer.txt и orders.txt в каталоге / pig_data / HDFS, как показано ниже.

customers.txt

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

orders.txt

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

И мы загрузили эти два файла в Pig с отношениями с клиентами и заказами, как показано ниже.

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

Давайте теперь получим перекрестное произведение этих двух отношений, используя кросс- оператор этих двух отношений, как показано ниже.

grunt> cross_data = CROSS customers, orders;

верификация

Проверьте отношение cross_data, используя оператор DUMP, как показано ниже.

grunt> Dump cross_data;

Выход

Он выдаст следующий вывод, отображающий содержимое отношения cross_data .