Hive 配置单元SQL-测试\u0000(ascii 00),不带'chr()`

Hive 配置单元SQL-测试\u0000(ascii 00),不带'chr()`,hive,Hive,我有一个数据集,其中有一些损坏的数据-字符串列中有一些包含\u0000的字符串。我需要把它们全部过滤掉,我唯一可以使用的就是where子句 我尝试了与concat“%”、chr00、“%”不同的WHERE字段,但我的配置单元发行版AWS EMR无法识别chr。填写my where子句是否还有其他选项,可以在不使用chr的情况下筛选出包含\u0000的字段?请尝试以下操作: WHERE field NOT LIKE '%\000%' 你可以试试下面的方法 选择“\u0000”作为文本; +---

我有一个数据集,其中有一些损坏的数据-字符串列中有一些包含\u0000的字符串。我需要把它们全部过滤掉,我唯一可以使用的就是where子句

我尝试了与concat“%”、chr00、“%”不同的WHERE字段,但我的配置单元发行版AWS EMR无法识别chr。填写my where子句是否还有其他选项,可以在不使用chr的情况下筛选出包含\u0000的字段?

请尝试以下操作:

WHERE field NOT LIKE '%\000%'

你可以试试下面的方法

选择“\u0000”作为文本; +----+-+ |正文| +----+-+ | | +----+-+ -不空 选择“\u0000abc”作为文本; +----+-+ |正文| +----+-+ |abc| +----+-+ -不空 所以

选择文本 从中选择“\u0000abc”作为文本作为t 其中文本不象“\u0000%”; +----+-+ |正文| +----+-+ +----+-+ -空的 选择文本 从中选择“\u0000abc”作为文本作为t 其中文本类似于“\u0000%”; +----+-+ |正文| +----+-+ |abc| +----+-+ -不空
谢谢-这是有用的,比我提出的另一个选项更干净,它依赖于hex/unhex: