可以apache猪比较unicode字符串?

时间:2015-09-23 04:19:03

标签: apache-pig

我有一个包含这些数据的文件:

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 个答案:

答案 0 :(得分:1)

在UTF-8系统上,您可以指定:

  • 由可打印的ASCII字符组成的字符串常量,例如'abc'。
  • 您可以指定控制字符,例如'\ t'。
  • 你可以用'\ u'来指定Unicode中的字符,例如,'\ u0001'代表十六进制的Ctrl-A。

您应该\u0110\u1ED3ng h\u1ED3 kim使用Đồng hồ kim

所以这是痛苦但你可以在unicode中转换那些字符串并将其作为参数传递。

理论上,您应该能够在非UTF-8系统上指定非UTF-8常量,但据我们所知,这尚未经过测试。