2017-04-27 4 views
0

다음과 같은 쿼리가 있습니다. Select split(Salary, '\|') as salaryEmp from tableA 그리고 잘 작동하고 ["1089","1078"] 같은 배열 문자열을 제공합니다.HIVE 배열 합계에 대한 쿼리

이 배열 문자열의 값을 추가하고 싶습니다. 나는 그것을 정수로 형변환해서 합칠 수 없다. 이를 위해 적절한 방법을 제안 할 수 있습니까?

+0

이 어떻게 (?!) 급여가 구분 된 문자열로 표시되는 상황에 도착 했습니까? –

+0

' '\ |''이 잘못되어''\\ | ''여야합니다. –

답변

0

사용 explode() + lateral view :

select sum(cast(salary as int)) sum_salry from 
(
select split('1089|1078', '\\|') SalaryArray 
) s lateral view explode (SalaryArray) a as Salary; 

OK 
2167 
+0

너무 복잡합니다 ... 하나의 SELECT로 수행 할 수 있습니다 –

+0

@Dudu Markovitz 감사합니다, 단순화 – leftjoin

0
select sum(e.col) as sum_Salary 
from salaryEmp lateral view explode (split(Salary,'\\|')) e 

+------------+ 
| sum_salary | 
+------------+ 
|  2167 | 
+------------+