Apache pig 如何在pig中创建一个小常量关系(表)?
有没有办法在pig中创建一个小的常量关系(表)? 我需要创建一个只有1个元组的关系,其中包含常量值。 大致如下:Apache pig 如何在pig中创建一个小常量关系(表)?,apache-pig,Apache Pig,有没有办法在pig中创建一个小的常量关系(表)? 我需要创建一个只有1个元组的关系,其中包含常量值。 大致如下: A = LOAD using ConstantLoader('{(1,2,3)}'); 谢谢,我不知道你为什么需要它,但是,这里有一个丑陋的解决方案: A = LOAD 'some/sample/file' ; B = FOREACH A GENERATE '' ; C = LIMIT A 1 ; 现在,您可以使用“C”作为具有一个空元组的“空关系”。快速回答:否 我在一本书里问
A = LOAD using ConstantLoader('{(1,2,3)}');
谢谢,我不知道你为什么需要它,但是,这里有一个丑陋的解决方案:
A = LOAD 'some/sample/file' ;
B = FOREACH A GENERATE '' ;
C = LIMIT A 1 ;
现在,您可以使用“C”作为具有一个空元组的“空关系”。快速回答:否
我在一本书里问过这件事
用法:
fourRows = GenerateRelationFromString('1,2,3,4');
myConstantRelation = FOREACH fourRows GENERATE (
CASE $0
WHEN '1' THEN (1, 'Ivan')
WHEN '2' THEN (2, 'Boris')
WHEN '3' THEN (3, 'Vladimir')
WHEN '4' THEN (4, 'Olga')
END
) as myTuple;
这无疑是一个骇客程序,在我看来,正确的方法是实现一个StringLoader(),它的工作方式如下:
fourRows = LOAD '1,2,3,4' USING StringLoader(',');
通常用于文件位置的参数将仅用作litral字符串输入。您想实现什么?为什么不能通过使用
%DECLARE
或传入几个包含这些常量的参数来实现呢?我使用的宏需要一个关系作为参数,我想要传递一个空的关系,我需要同样的关系。这与stackoverflow.com/questions/12423399/define-tuple-datas-in-the-pig-scriptThank,的确很难看:)请注意,如果您想要与2条记录建立关系,例如{(1,2)(3,4)}
fourRows = LOAD '1,2,3,4' USING StringLoader(',');