首页 > 解决方案 > 如何加载“|” 分隔文件到配置单元中,而不使用“行格式分隔符”创建配置单元表

问题描述

我正在尝试使用“|”加载本地文件 分隔值到 hive 表中,我们通常使用选项 "ROW FORMAT DELIMITER "|" 创建一个表。但我想创建一个普通表并加载数据。我需要使用什么正确的语法,请建议。

工作代码

CREATE TABLE IF NOT EXISTS  testdb.TEST_DATA_TABLE
(  column1                string,
column 2        bigint,
)ROW FORMAT DELIMITED FIELDS TERMINATED BY '|';
LOAD DATA LOCAL INPATH 'xxxxx.csv' INTO TABLE testdb.TEST_DATA_TABLE;

但我想做:

CREATE TABLE IF NOT EXISTS  testdb.TEST_DATA_TABLE
(  column1                string,
column 2        bigint,
);
LOAD DATA LOCAL INPATH 'xxxxx.csv' INTO TABLE testdb.TEST_DATA_TABLE FIELDS TERMINATED BY '|';

原因开始:如果我创建一个表,HDFS 将用“|”将数据存储在表中 分界线

标签: hivehiveql

解决方案


使用您提供的第二个 DDL,Hive will create default formatted table like Textformat,orc,parquet..etc(as per your configuration)带有cntrl+A分隔文件(配置单元中的默认分隔符)。

如果你想存储hdfs file用管道分隔的,那么我们需要create Hive Table in Text with | delimiter.

(或者)

local (or) HDFS您也可以使用管道分隔符将选择查询的结果写入路径。


推荐阅读