복붙노트

[HADOOP] 나는 하둡의 맵 구조에 의해 '필터'를 사용할 수 - 돼지?

HADOOP

나는 하둡의 맵 구조에 의해 '필터'를 사용할 수 - 돼지?

같은지도가 있음을 제공 ,,,

map.text

[key1#v1]
[key2#v2]
[key3#v3]

다음, 나는 키 2 '' '의 값을'발견하려고하면,

A = load ‘map.text’ as (M:map[]);
B = foreach A generate M#'key2';
C = filter B by $0!='';     // to get rid of empty value like (), (), ().
dump C;

키 2를 찾을 수있는 다른 방법은 무엇입니까? 단지 '로 필터'를 이용하여 함께.

나중에 Zkss.

해결법

  1. ==============================

    1.필드를 생성 한 후 필터를 사용할 필요가 없습니다; 당신은 시작에 필터 문에 포함 할 수 있습니다 :

    필드를 생성 한 후 필터를 사용할 필요가 없습니다; 당신은 시작에 필터 문에 포함 할 수 있습니다 :

    A = load 'map.text' as (M:map[]);
    B = filter A by M#'key2' != '';
    dump B;
    

    데이터에서 이것은 하나 개의 레코드를 반환합니다 :

    ([key2#v2])
    

    사이드 참고로, 경우에 빈 문자열 이제까지 유효한 값, 당신은 대신 사용할 수있는 기준은 M # '키 2'입니다 null이 아닙니다.

  2. from https://stackoverflow.com/questions/18556902/can-i-use-filter-by-with-map-structure-in-hadoop-pig by cc-by-sa and MIT license