我们如何在Hive中实现货币转换?

时间:2016-10-26 14:31:55

标签: hadoop hive udf

我想将所有员工的薪水转换为美元

假设我有一个Hive表' emp'

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

我需要写一个选择查询,它应该给我以下结果

我的预期输出是

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

我的桌子有更多的Currency_code,例如NZD,CAD,JPY等等。

hive中是否有任何通用的内置函数来执行此操作?

请帮我为我提供一条寻找解决方案的途径

1 个答案:

答案 0 :(得分: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---
    }
}}

如果您有任何疑问,请与我们联系。