
# 自定义Hive表行分隔符
#### 操作场景
通常情况下，Hive以文本文件存储的表会以回车作为其行分隔符，即在查询过程中，以回车符作为一行表数据的结束符。但某些数据文件并不是以回车分隔的规则文本格式，而是以某些特殊符号分隔其规则文本。
MRS Hive支持指定不同的字符或字符组合作为Hive文本数据的行分隔符，即在创建表的时候，指定inputformat为SpecifiedDelimiterInputFormat，然后在每次查询前，都设置如下参数来指定分隔符，就可以以指定的分隔符查询表数据：
```
set hive.textinput.record.delimiter='';
```
#### 约束与限制
当前版本的Hue组件，不支持导入文件到Hive表时设置多个分隔符。
#### 操作步骤
1. 以Hive客户端安装用户登录安装客户端的节点。
2. 执行以下命令，切换到客户端安装目录，配置环境变量并认证用户。 
   切换至客户端安装目录：
   ```
   cd 客户端安装目录
   ```
   加载环境变量：
   ```
   source bigdata_env
   ```
   认证用户，未开启Kerberos认证的集群请跳过该步骤：
   ```
   kinit Hive业务用户
   ```
   
   
3. 执行以下命令登录Hive客户端。 
   ```
   beeline
   ```
   
   
4. 创建表时指定inputFormat和outputFormat： 
   ```
   CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name data_type [COMMENT col_comment], ...)] [ROW FORMAT row_format] STORED AS inputformat 'org.apache.hadoop.hive.contrib.fileformat.SpecifiedDelimiterInputFormat' outputformat 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';
   ```
   
   
5. 查询之前指定分隔符配置项： 
   ```
   set hive.textinput.record.delimiter='!@!';
   ```
   Hive会以"!@!"为行分隔符查询数据。
   
   
 
