如果数据范围较大且有了小数的话,用case when就不好操作,我这里是包含了0.0到1000.0步长为0.1的数据,类似数据的可以参考
思路就是用python生成数字对应中文的映射表,然后再导出为csv形式,导入到hive的一张新建映射表中,再用目标数据表关联映射表拿到对应中文
python代码如下,可以根据自己的数据范围进行修改
import cn2an
import numpy as np
import pandas as pd
data_num = []
data_str = []
for i in np.arange(0,1000,0.1):
data_num.append(str(round(i, 2)))
data_str.append(cn2an.an2cn(round(i, 2),"low"))
print("("+str(round(i, 2))+","+cn2an.an2cn(round(i, 2),"low")+")"+",")
data = {
"数字": data_num,
"中文": data_str
}
data_csv = pd.DataFrame(data)
data_csv.to_csv("数字转中文.csv", index=False, encoding="utf-8")