apache pig 可以比较 unicode 字符串吗?

can apache pig compare unicode string?

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

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 字符串吗?

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

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

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

所以这很痛苦,但您可以将这些字符转换为 unicode 并将其作为参数传递。

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