如果字段值具有逗号分隔值,如何创建外部 Hive table
How to create an external Hive table if the field value has comma separated values
我曾使用 sqoop-import 命令将数据从 teradata sqoop 到 Hive 中。 Sqoop-import 命令正在创建一个以逗号(,) 作为分隔符的文本文件。
Sqooping 后,我创建了一个外部 table 如下所示:
CREATE EXTERNAL TABLE IF NOT EXISTS employee ( eid int, name String,
salary String, description String)
COMMENT ‘Employee details’
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\n’
STORED AS TEXTFILE;
但是描述栏的值是这样的:"abc,xyz,mnl"。因此,将数据加载到配置单元 table 是不正确的。那么如何在 sqooping 时使用逗号以外的分隔符创建文本文件。
那么如何在创建外部table Hive 时分隔字段?
如果您想避免使用默认分隔符,请在您的 Sqoop 作业中使用 --fields-terminated-by
。
--fields-terminated-by
- 此参数用于输出中的字段分隔符。
示例:--fields-terminated-by |
然后通过 FIELDS TERMINATED BY ‘|’
更改 create table 语句中的字段分隔符
我曾使用 sqoop-import 命令将数据从 teradata sqoop 到 Hive 中。 Sqoop-import 命令正在创建一个以逗号(,) 作为分隔符的文本文件。
Sqooping 后,我创建了一个外部 table 如下所示:
CREATE EXTERNAL TABLE IF NOT EXISTS employee ( eid int, name String,
salary String, description String)
COMMENT ‘Employee details’
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘,’
LINES TERMINATED BY ‘\n’
STORED AS TEXTFILE;
但是描述栏的值是这样的:"abc,xyz,mnl"。因此,将数据加载到配置单元 table 是不正确的。那么如何在 sqooping 时使用逗号以外的分隔符创建文本文件。
那么如何在创建外部table Hive 时分隔字段?
如果您想避免使用默认分隔符,请在您的 Sqoop 作业中使用 --fields-terminated-by
。
--fields-terminated-by
- 此参数用于输出中的字段分隔符。
示例:--fields-terminated-by |
然后通过 FIELDS TERMINATED BY ‘|’