Hive表字段由'¬'分隔,hive不接受此字符

时间:2016-03-18 07:21:24

标签: linux hadoop hive

当我在create table中使用它时,我所拥有的数据由'¬'分隔我将错误视为无效字符。我尝试使用它的unicode版本'\ U00AC',但没有使用所有记录在第一个字段中被摄取。在unix中,这个字符'¬'显示为�。 任何人都可以指导我在截面上终止的字段中使用什么。

CREATE TABLE IF NOT EXISTS test
(
CONTACT_RECORD_ID    string,
ACCOUNT    string,
CUST    string,
NUMBER    string,
NUMBER1    string,
NUMBER2    string,
NUMBER3    string,
NUMBER4    string,
NUMBER5    string,
NUMBER6    string,
NUMBER7    string,
LIST    string
)
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '¬';

2 个答案:

答案 0 :(得分:0)

请你试试这个DDL。

CREATE TABLE IF NOT EXISTS test
(
CONTACT_RECORD_ID    string,
ACCOUNT    string,
CUST    string,
NUMBER    string,
NUMBER1    string,
NUMBER2    string,
NUMBER3    string,
NUMBER4    string,
NUMBER5    string,
NUMBER6    string,
NUMBER7    string,
LIST    string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES ('empty.string.null'='true','field.delim'='\0AC','serialization.format'='\0AC','serialization.null.format'='')
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';

答案 1 :(得分:0)

如果你有csv格式的数据,你可以使用Hadoop/Hive : Loading data from .csv on a local machine中的这个工具轻松地将数据导出到Hadoop。