【问题标题】:HIVE - create external tables where string itself contains commasHIVE - 创建字符串本身包含逗号的外部表
【发布时间】:2019-03-21 14:14:45
【问题描述】:

我是 Hive 新手,正在 csv 文件上创建外部表。我遇到的问题之一是在字符串本身中包含多个逗号的值。例如,csv 文件包含以下内容:

CSV File

当我在 Hive 中创建一个外部表时,因为“名称”列中有列,它会将第一个名称向右移动添加另一列。当您在 Hive 中查看表时,这会丢弃所有数据。

External Table result in Hive

在创建外部表时,我是否可以在脚本中添加任何内容以保留逗号,同时在同一列中保留名字和姓氏?提前谢谢大家 - 我对 Hive 很陌生。

CREATE EXTERNAL TABLE database.table name (
ID INT,
Name String,
City String,
State String
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/xyz/xyz/database/directory/'
TBLPROPERTIES ("skip.header.line.count"="1");

【问题讨论】:

标签: hadoop hive external-tables


【解决方案1】:

检查此解决方案 - 您需要添加此行:ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'

https://community.cloudera.com/t5/Support-Questions/comma-in-between-data-of-csv-mapped-to-external-table-in/td-p/220193

完整的 DDL 示例:

create table hcc(field1 string,
field2 string,
field3 string,
field4 string,
field5 string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = ",",
   "quoteChar"     = "\"");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多