[HADOOP] 튜플을 가방처럼 평평하게 만드십시오.
HADOOP튜플을 가방처럼 평평하게 만드십시오.
내 데이터 세트는 다음과 같습니다.
( A, (1,2) )
( B, (2,9) )
기본적으로 내부 튜플에있는 각 값에 대한 각 레코드를 반복하여 돼지의 튜플을 "평평하게"하여 예상되는 출력을 다음과 같이 만듭니다.
( A, 1 )
( A, 2 )
( B, 2 )
( B, 9 )
튜플 (1,2)과 (2,9)가 대신 가방 일 때 이것이 가능하다는 것을 압니다.
해결법
-
==============================
1.당신의 통찰력은 좋다; 가방에 들어있는 튜플을 변환하면 가능합니다. 우리가 목표로하고 싶은 스키마는 {a : chararray, {(chararray)}}입니다 : (A, {(1), (2)})
당신의 통찰력은 좋다; 가방에 들어있는 튜플을 변환하면 가능합니다. 우리가 목표로하고 싶은 스키마는 {a : chararray, {(chararray)}}입니다 : (A, {(1), (2)})
문제의 해결책은 다음과 같습니다.
A = LOAD 'data.txt' AS (a:chararray,b:(b1:chararray,b2:chararray)); B = FOREACH A GENERATE a, TOBAG(b.b1,b.b2); C = FOREACH B GENERATE a, FLATTEN($1);
마술 부분은 TOBAG 연산자입니다.
-
==============================
2.DataFu의 UDF TransposeTupleToBag (http://datafu.incubator.apache.org/docs/datafu/1.1.0/datafu/pig/util/TransposeTupleToBag.html)를 사용하여 가방을 평평하게하고 가방.
DataFu의 UDF TransposeTupleToBag (http://datafu.incubator.apache.org/docs/datafu/1.1.0/datafu/pig/util/TransposeTupleToBag.html)를 사용하여 가방을 평평하게하고 가방.
-
==============================
3.나는 이것이 오래된 쓰레드라는 것을 알고 있지만, 위의 메소드가 작동하지 않을 수있다. 내 연구 결과를 나눌 생각이다.
나는 이것이 오래된 쓰레드라는 것을 알고 있지만, 위의 메소드가 작동하지 않을 수있다. 내 연구 결과를 나눌 생각이다.
input: (1-2-3, abc) (4-5-6, xyz) desired output: (1, abc) (2, abc) (3, abc) (4, xyz) (5, xyz) (6, xyz)
처음에는 튜플을 생성하는 STRSPLIT를 사용하여 위와 비슷한 입력 결과를 얻었지만 성공하지 못했습니다.
output = FOREACH input GENERATE FLATTEN(TOBAG(STRSPLIT($0, '-'))), $1
결과는 다음과 같습니다.
(1,2,3,abc) (4,5,6,xyz)
그러나, 내가 tokenize를 사용하고 기능을 대체 할 때 나는 원하는 출력을 얻었다.
output = FOREACH input GENERATE FLATTEN(TOKENIZE(REPLACE($0,'-', ' '))), $1;
from https://stackoverflow.com/questions/10594144/flatten-tuple-like-a-bag by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] HDFS 형식 로컬 디스크를 s3 오류로 바꾸기 (org.apache.hadoop.service.AbstractService) (0) | 2019.08.04 |
---|---|
[HADOOP] Java를 통한 Apache 드릴 연결 (0) | 2019.08.04 |
[HADOOP] NameNode 주소의 URI가 잘못되었습니다. (0) | 2019.08.04 |
[HADOOP] R + Hadoop : HDFS에서 CSV 파일을 읽고 mapreduce를 실행하는 방법은 무엇입니까? (0) | 2019.08.04 |
[HADOOP] SOCKS 프록시를 통해 Hadoop을 사용하고 있습니까? (0) | 2019.08.04 |