[HADOOP] 돼지에서 함께 여러지도를 결합
HADOOP돼지에서 함께 여러지도를 결합
나는 처음으로 돼지를 사용하고 있습니다. 나는 그러나 이상하게 중첩 된 형식으로, 내가 원하는 정확히 답을 가지고있는 점에 왔 :
{(price,49),(manages,"1d74426f-2b0a-4777-ac1b-042268cab09c")}
나는 어떤 포장하지 않고, 하나의지도로 출력을하고 싶습니다 :
[price#49, manages#"1d74426f-2b0a-4777-ac1b-042268cab09c"]
나는 여기까지 얻을 수 TOMAP을 사용하여 관리했습니다,하지만 난 병합하고 그것을 멀리 평평하게하는 방법을 알아낼 수 없습니다.
{([price_specification#{"amount":49,"currency":"USD"}]),([manages#"newest-nodes/1d74426f-2b0a-4777-ac1b-042268cab09c"])}
어떻게 이것에 대해 갈 것인가?
해결법
-
==============================
1.불행하게도, 당신을 위해이 작업을 수행 할 내장 함수가 없습니다. 당신은 당신의 자신의 UDF를 작성해야합니다. 다행히, 이것은 단순한 하나입니다.
불행하게도, 당신을 위해이 작업을 수행 할 내장 함수가 없습니다. 당신은 당신의 자신의 UDF를 작성해야합니다. 다행히, 이것은 단순한 하나입니다.
간부 인 방법은 뭔가를 갈 것입니다 :
public Map<String, Object> exec(Tuple input) { Map<String, Object> m = new HashMap<String, Object>(); for (int i = 0; i < input.size(); i++) m.putAll((Map<String, Object>) input.get(i)); return m; }
UDF를 인수로지도의 수를 걸릴 수 있습니다.
두 개 이상의 맵이 키를 공유하는 경우, 다음 발생하는 마지막 하나는 유지하고 다른 사람이 덮어 얻을 수있는 하나 않습니다.
from https://stackoverflow.com/questions/21791240/combining-multiple-maps-together-in-pig by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 일반적인 옵션을 파서를 통해 mapreduce.job.reduces을 설정할 수 없습니다 (0) | 2019.10.16 |
---|---|
[HADOOP] 아파치 돼지 - 어떻게 소수점 이하 자릿수를 잘라 (0) | 2019.10.16 |
[HADOOP] 삭제 명령에 하이브 1.2.1 오류 (0) | 2019.10.16 |
[HADOOP] 작동하지 하둡 작업 및 작업 추적기 (0) | 2019.10.16 |
[HADOOP] 하이브에서 HBase를 테이블에 데이터를로드 할 수 없습니다 (0) | 2019.10.16 |