Apache pig 如何在pig中创建一个小常量关系(表)?

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”作为具有一个空元组的“空关系”。快速回答:否 我在一本书里问

有没有办法在pig中创建一个小的常量关系(表)? 我需要创建一个只有1个元组的关系,其中包含常量值。 大致如下:

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(',');