2014-03-05 144 views
0

我在Hadoop的數據,看起來像這樣:最佳方式

DUMP EmailData; (Email,StateName)([email protected],加利福尼亞州) ([email protected],亞利桑那州)([email protected],紐約)

DUMP StateData; (StateCode,經度,緯度)(AZ,-111.93248,34.17163)(紐約州, -75.810280,42.75633)(CA,-119.25700,37.26842)

我想沿着線做一些事情:

Locations = JOIN EmailData BY StateName, StateData BY StateCode; 

但顯然你不能匹配代碼的名稱。 如果是SQL,我會使用case語句或定義一個表並插入可以橋接我想要的關係的值。

在豬身上做這件事的最好方法是什麼?

回答

1

最簡單,最快捷的方法就是快速將50行(或更多,取決於DC或任何地區的存在)文件翻譯代碼轉換爲名稱,然後將其轉換爲JOIN。如果您覺得雄心勃勃,不想處理額外的文件,您可以編寫一個UDF來完成翻譯,並將數據編入硬編碼。由於這些數據的變化非常緩慢,因此對它進行硬編碼並不是什麼大問題。