새 돼지 사용자. 나는 mysql 문을 돼지로 변환하고 아래의 문제에 대처했다. 나는 합치기 위해서 필요한 2 개의 테이블을 가지고 있으며 합쳐진 값은 계산이있다. 나는 그것이 단순한 문제 여야한다고 생각한다.돼지에서 결합 계산 수행
예를 들어, 내 테이블은 내가 계산에 참여하기 위해 Pig
설명서의 구문을 찾을 join.Could 기계 1 및 machinemeans 있습니다. 어떤 제안?
select region, os, group, f.machine, f.machine_users, f.machine_tm,
f.machine_users - g.users_per_machine outliers,
f.machine_tm - g.tm_per_machine outlying_tm,
tm_per_machine/(f.machine_tm+1) factor
from machine1 f
inner join machinemeans g using(region, os, group)
order by 4, 1, 2, 3
들으
업데이트 : 감사합니다, WinnieNicklaus. 당신의 제안을 시도했지만 스칼라가 출력 오류에서 1 행 이상을 가지게되었습니다. 여기 내 코드가있다.
machine1 = LOAD 'S1' AS (
block:chararray,
region:chararray,
os:chararray,
group:int,
machine:int,
machine_users:int,
machine_tm:float
);
machinemeans = LOAD 'S2' AS (
region:chararray,
os:chararray,
group:int,
tot_machines:int,
tot_users:int,
users_per_machine:float,
tm_per_machine:float,
tm_per_user:float,
cnt_per_block:float,
cnt_per_user:float
);
imbalance = FOREACH (JOIN machine1 by (region,os,group),
machine2 by (region,os,group))
GENERATE
region,os,group,
machine1.machine,
machine1.machine_users,
machine1.machine_tm,
machine1.machine_users - machinemeans.users_per_machine,
machine1.machine_tm - machinemeans.tm_per_machine;
편집을 할 수 있습니다. 특정 오류 메시지 : "스칼라에 출력에 둘 이상의 행이 있습니다." –
신경 쓰지 마라. 조인에서 :: 연산자를 사용하는 것을 잊었습니다. 지금은 잘 작동합니다. 감사. –