有没有办法在pig中创建一个小的常量关系(表)?我需要创建一个只有1个元组包含常量值的关系。大致如下:
A = LOAD using ConstantLoader('{(1,2,3)}');
谢谢,我
mrfwxfqh1#
我不知道你为什么需要这个,但是,这里有一个丑陋的解决方案:
A = LOAD 'some/sample/file' ; B = FOREACH A GENERATE '' ; C = LIMIT A 1 ;
现在,可以使用“c”作为具有一个空元组的“空关系”。
py49o6xq2#
快速回答:不。我在邮件列表上问过。
llew8vvj3#
DEFINE GenerateRelationFromString(string) RETURNS relation { temp = LOAD 'somefile'; tempLimit1 = LIMIT temp 1; $relation = FOREACH tempLimit1 GENERATE FLATTEN(TOKENIZE('$string', ',')); };
用法:
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字符串输入。
3条答案
按热度按时间mrfwxfqh1#
我不知道你为什么需要这个,但是,这里有一个丑陋的解决方案:
现在,可以使用“c”作为具有一个空元组的“空关系”。
py49o6xq2#
快速回答:不。
我在邮件列表上问过。
llew8vvj3#
用法:
这无疑是一种黑客行为,在我看来,正确的方法是实现一个stringloader(),它的工作方式如下:
通常用于文件位置的参数将仅用作litral字符串输入。