[HADOOP] 돼지 :리스트에 변수 위에 루프를 쓸 수 있습니까?
HADOOP돼지 :리스트에 변수 위에 루프를 쓸 수 있습니까?
목록에서 30 개 이상의 변수를 반복해야합니다.
[var1, var2, ..., var30]
각 변수에 대해 다음과 같은 문으로 PIG 그룹을 사용합니다.
grouped = GROUP data by var1;
data_var1 = FOREACH grouped{
GENERATE group as mygroup,
COUNT(data) as count;
};
변수 목록을 반복하는 방법이 있습니까? 아니면 코드에서 수동으로 30 번 이상 반복해야합니까?
감사!
해결법
-
==============================
1.네가 찾고있는 건 돼지 고기 야.
네가 찾고있는 건 돼지 고기 야.
30 개의 변수에 대한 관계를 만들고 foreach를 사용하여 반복하고 두 개의 매개 변수를 갖는 매크로를 호출하십시오. 데이터 관계와 그룹으로 묶을 변수입니다. 매크로가 실제로하고 싶은 것과 비슷한 링크의 예제를 확인하십시오.
업데이트 및 코드
그래서 여기에 사용할 수있는 매크로가 있습니다.
DEFINE my_cnt(data, group_field) RETURNS C { $C = FOREACH (GROUP $data by $group_field) GENERATE group AS mygroup, COUNT($data) AS count; };
매크로 사용 :
IMPORT 'cnt.macro'; data = LOAD 'data.txt' USING PigStorage(',') AS (field:chararray, value:chararray); DESCRIBE data; e = my_cnt(data,'the_field_you_group_by'); DESCRIBE e; DUMP e;
나는 당신이 그룹화하고자하는 분야에서 어떻게 반복 할 수 있는지 생각 중입니다. 관계가 잘못되어있는 파일명이 포함 된 것을 foreach하는 나의 원래 제안. (이것을위한 UDF를 만들려면 항상 작동합니다.) 생각해 봅시다. 그러나이 매크로는 그룹화하려는 모든 파일 이름을 호출 할 때 그대로 작동합니다.
from https://stackoverflow.com/questions/37029980/pig-is-it-possible-to-write-a-loop-over-variables-in-a-list by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Apache Spark을 사용하여 pdf / audio / video 파일 (구조화되지 않은 데이터)을 읽을 수 있습니까? (0) | 2019.06.11 |
---|---|
[HADOOP] 와일드 카드가있는 Hadoop HDFS 사본? (0) | 2019.06.11 |
[HADOOP] Windows에서 Mapreduce (yarn)를 실행하는 동안 오류가 발생했습니다. (0) | 2019.06.11 |
[HADOOP] Hadoop의 MapReduce 작업 성능 향상을위한 팁 (0) | 2019.06.11 |
[HADOOP] --map-column-hive와 함께 Sqoop 가져 오기 명령을 사용하는 방법? (0) | 2019.06.11 |