Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache pig PLSQL到清管器的转换_Apache Pig - Fatal编程技术网

Apache pig PLSQL到清管器的转换

Apache pig PLSQL到清管器的转换,apache-pig,Apache Pig,是我的plsql查询结构。我需要转换它 我已经成功地转换了内部案例查询,并执行了它 plsql案例条件的内部查询将变为PIG形式 Select x,y,.., CASE( when A.A_code = 'G' THEN COUNT(DISTINCT CASE WHEN T.trxn = 'P' THEN

是我的plsql查询结构。我需要转换它

我已经成功地转换了内部案例查询,并执行了它

plsql案例条件的内部查询将变为PIG形式

Select x,y,..,
     CASE(
     when A.A_code = 'G' THEN
                            COUNT(DISTINCT CASE
                                    WHEN T.trxn = 'P' THEN
                                     D.A || D.B || D.C 
                                     ELSE
                                     NULL
                                  END)
                          else
                            0
                          end p_count,..From..
在此之前,我需要检查外部条件(A.A_code='G')。 看起来情况很糟。 但是我们需要检查的表字段是不同的,它们来自不同的表 请指导我如何先检查A.A_代码='G'。然后只执行内部查询


请尽快给我一个解决方案。提前谢谢

我编辑了猪的剧本。请立即检查。已执行转换的PIG脚本。但在此之前,我需要检查when条件。我怎样才能用PIG来提到它?请给我一个想法。如果你不理解我的要求,我会再解释一遍。将你写的内容格式化为一个问题。用PIG拉丁语给我一个嵌套case条件的例子。我得到了猪案例陈述的简单代码。需要转换Case(Case…End)End;。
T = LOAD '//transaction_types' USING PigStorage(',') as (id:int,trxn:chararray);

D = LOAD '/home/sterlingpc1/Desktop/det_trades' USING PigStorage(',') as (id:int,A:chararray,B:chararray,C:chararray);

JOINED = JOIN T by id,D by id;

p_count = FOREACH JOINED  GENERATE 
                  (case T::trxn
                       WHEN 'P'
                       THEN
                       CONCAT(D::A,D::B,D::C)
                       ELSE
                   NULL
                       END)