2016-10-26 3 views
2

내가 USD하이브에서 통화 변환은 어떻게 달성합니까?

에 모든 직원의 급여를 변환하고 싶습니다 내가 나에게 아래의 결과를 제공해야 선택 쿼리를 작성해야 내가 하이브 테이블 'EMP'

id name  currency_code salary_as_per_currency_code 
100 Surender EUR    10 
101 Raja  INR    100 
102 Ajay  USD    5 

가 있다고 가정하자

내 예상 출력은 내 테이블은 NZD, CAD, JPY 모두 같은 더 CURRENCY_CODE을 가지고

id name  currency_code salary_as_per_currency_code  salary_in_USD 
100 Surender EUR    10        $10.92 
101 Raja  INR    100        $1.496         
102 Ajay  USD    5        $5 

입니다.

하이브에는 일반 내장 함수가 있습니까?

이 변환에 사용할 수있는 내장 기능이 없습니다이

답변

1

에 대한 해결책을 찾기 위해 나에게 가능한 경로를주는 제발 도와주세요,하지만 당신은 하이브에 자신의 UDF를 만들 수 있습니다. 다음 하이버에서 UDF를 작성하는 방법에 대한 링크를 참조하십시오. 당신이 할 필요가 아래 블록에 전환 로직을 작성하는 것입니다

UDF tutorial

,

public class currency_conversion extends UDF { 
public Text evaluate(String currency_code, String salary_as_per_currency_code){ 
----- write your logic here--- 
    if (currency_code.contains("INR")){ 
     --write your conversion logic here--- 
    } 
}} 

는 쿼리 당신이이 있으면 알려주세요.