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

How do we achieve Currency Conversion in Hive?

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

假设我有一个 Hive table 'emp'

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

我需要编写一个 select 查询,它应该会给我以下结果

我的预期输出是

id    name        currency_code   salary_as_per_currency_code     salary_in_USD
100   Surender    EUR             10                              .92
101   Raja        INR             100                             .496                                  
102   Ajay        USD             5                               

我的 table 有更多 Currency_code,例如 NZD、CAD、JPY 等等。

hive 中是否有任何通用的内置函数可以做到这一点?

请帮我提供一个可能的途径来找到这个问题的解决方案

没有可用于此转换的内置函数,但您可以在 hive 中创建自己的 UDF。参考下面link,它将指导您在 hive 中创建 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---
    }
}}

如果您有任何疑问,请告诉我。