在猪中转换州名的最佳方法

时间:2014-03-05 20:22:32

标签: string apache-pig

我的hadoop数据看起来像这样:

  

DUMP EmailData; (电子邮件,州名称)(allen @ a.com,加州)   (bobby@b.com,亚利桑那州)(cindy @ c.com,纽约)

     

DUMP StateData; (StateCode,Lon,Lat)(AZ,-111.93248,34.17163)(纽约,   -75.810280,42.75633)(CA,-11.2.25700,37.26842)

我想按照以下方式做点什么:

Locations = JOIN EmailData BY StateName, StateData BY StateCode;

但显然你无法将名称与代码匹配。 如果它是SQL,我会使用case语句或定义一个表并插入可以桥接我想要的关系的值。

在Pig中执行此操作的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

最简单,最快捷的方法就是快速将50行(或更多,取决于DC或任何地区的存在)文件转换为名称和JOIN文件。如果你是感觉雄心勃勃并且不想处理额外的文件,你可以编写一个UDF进行翻译,数据是硬编码的。由于这些数据变化很慢,硬编码并不是什么大不了的事。