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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在由'^ P'分隔符分隔的数据上构建一个hive表相关的知识,希望对你有一定的参考价值。

我的查询是:

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

请帮帮我。

答案

以下是选项:

  • ... 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

另一答案

^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';

以上是关于如何在由'^ P'分隔符分隔的数据上构建一个hive表的主要内容,如果未能解决你的问题,请参考以下文章

sql一个字段内有分隔符如何拆分成多行

SQL 怎么将一列中的数据按一个分隔符分成多列显示

mssql,逗号分隔的字符串转换成一列数据

python中,如何将字符串中的多个不等量空格改为改为逗号分隔?

编写一个sql语句,把b列中的数据用逗号分隔开,变成很多?谢谢

python笔记 xpinyin