2015-09-23 30 views
0

我有這些數據的文件:可以apache豬比較unicode字符串嗎?

jumpsuit 1 
son 1 
Đồng hồ kim 1 

這是我的豬腳本:

A = LOAD 'hdfs://Hadoop238:8020/user/steve/test/test.txt' USING PigStorage AS (productName:chararray, number:int); 

B = FILTER A BY (productName =='Đồng hồ kim'); 

DUMP B; 

它返回任何內容。但是,如果我更改爲:

B = FILTER A BY (productName =='jumpsuit'); 

它返回值。

看來豬不能比較unicode字符串。有什麼辦法可以比較unicode字符串嗎?

回答

1

在UTF-8系統中,您可以指定:

  • 字符串常量,包括可打印的ASCII字符,如 'ABC'。
  • 您可以指定控制字符,如'\ t'。
  • 而且,您可以通過以'\ u'開頭來指定一個Unicode字符,例如,'\ u0001'代表十六進制的Ctrl-A。

您應該使用\u0110\u1ED3ng h\u1ED3 kimĐồng hồ kim

所以這是律痛苦,但你可以轉換爲Unicode charachters並把它作爲參數。

理論上,您應該能夠在非UTF-8系統上指定非UTF-8常量,但據我們所知,這尚未經過測試。