방법

2017-12-06 10 views
0

라틴어 돼지에 알파벳 문자열의 문자를 정렬하려면? 이 같은방법

:

aacb 
abc 
ads 
acdes 

답변

0

는 chararray 및 종류 it.Return 정렬 된 문자열로 문자열을 변환 UDF를 UDF.In 할 수있는 이름을 자신의 UDF.Pass를 작성합니다.

돼지

REGISTER ORDER_UDF.jar; 
A = LOAD 'data.txt' USING PigStorage(',') AS (name: chararray); 
B = FOREACH A GENERATE ORDER_UDF.ORDER(name); 
DUMP B; 

UDF

import java.io.IOException; 
import java.util.Arrays; 
import org.apache.pig.EvalFunc; 
import org.apache.pig.data.Tuple; 

    public class ORDER extends EvalFunc<String> 
    { 
    public String exec(Tuple input) throws IOException { 
     if (input == null || input.size() == 0) 
      return null; 
     try{ 
      char tempArray[] = ((String)input).toCharArray(); 
      Arrays.sort(tempArray);  
      return new String(tempArray); 
     }catch(Exception e){ 
      throw new IOException("Caught exception processing input row ", e); 
     } 
    } 
    }