在写hive查询的时候,如果遇到特殊字符需要使用一些转义符进行转义,如:
hive>select split(ip,’\&’) from students;
通过转义,hive能识别&,并按&进行分割。
但现实中使用会有一些问题,如
hive>select split(ip,’\.’) from students;
该语句无法安装’.'来分割ip。经过仔细研究发现需要写成如下格式:
hive>select split(ip,’\\.’) from students;
需要经过两次转义,hive才能识别。
究其原因可能是有些特殊字符hive需要转义,翻译成hadoop后,hadoop也认为这是一个特殊字符,所以需要再转一次义才能正常工作。