다음과 같은 쿼리가 있습니다. Select split(Salary, '\|') as salaryEmp from tableA
그리고 잘 작동하고 ["1089","1078"]
같은 배열 문자열을 제공합니다.HIVE 배열 합계에 대한 쿼리
이 배열 문자열의 값을 추가하고 싶습니다. 나는 그것을 정수로 형변환해서 합칠 수 없다. 이를 위해 적절한 방법을 제안 할 수 있습니까?
다음과 같은 쿼리가 있습니다. Select split(Salary, '\|') as salaryEmp from tableA
그리고 잘 작동하고 ["1089","1078"]
같은 배열 문자열을 제공합니다.HIVE 배열 합계에 대한 쿼리
이 배열 문자열의 값을 추가하고 싶습니다. 나는 그것을 정수로 형변환해서 합칠 수 없다. 이를 위해 적절한 방법을 제안 할 수 있습니까?
사용 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
너무 복잡합니다 ... 하나의 SELECT로 수행 할 수 있습니다 –
@Dudu Markovitz 감사합니다, 단순화 – leftjoin
select sum(e.col) as sum_Salary
from salaryEmp lateral view explode (split(Salary,'\\|')) e
+------------+
| sum_salary |
+------------+
| 2167 |
+------------+
이 어떻게 (?!) 급여가 구분 된 문자열로 표시되는 상황에 도착 했습니까? –
' '\ |''이 잘못되어''\\ | ''여야합니다. –