如何在由'^ P'分隔符分隔的数据上构建一个hive表

时间:2017-03-12 17:53:40

标签: hive hiveql hive-serde

我的查询是:

CREATE EXTERNAL TABLE gateway_staging (
  poll int,
  total int,
  transaction_id int,
  create_time timestamp,
  update_time timestamp
  )
  ROW FORMAT DELIMITED FIELDS TERMINATED BY '^P';

(我不确定'^ P'是否可以用作分隔符但是尝试过了)

当我将数据加载到hive表中时,结果显示所有字段'none'。

数据如下:

  

4307421698 ^ P200 ^ P138193920770 ^ P2017-03-08 02:46:18.021204 ^ P2017-03-08   02:46:18.021204

请帮帮我。

2 个答案:

答案 0 :(得分:2)

以下是选项:

  • ... fields terminated by '\020'(八月)
  • ... fields terminated by '16'(十进制)
  • ... fields terminated by '\u0010'(十六进制)

请注意,有一个与Unicode文字(' \ u0010')相关的错误,假设在版本2.1中修复,因此使用第3个选项不会对早期版本起作用。 https://issues.apache.org/jira/browse/HIVE-13434

答案 1 :(得分:0)

^P的八进制值为020。尝试,

CREATE EXTERNAL TABLE gateway_staging (
  poll int,
  total int,
  transaction_id int,
  create_time timestamp,
  update_time timestamp
  )
  ROW FORMAT DELIMITED FIELDS TERMINATED BY '\020';