我想将带有输入数据的表加载到配置单元中.我有以下格式的数据.
"153662";"0002241447";"0"
"153662";"000647036X";"0"
"153662";"0020434901";"0"
"153662";"0020973403";"0"
"153662";"0028604202";"0"
"153662";"0030437512";"0"
Run Code Online (Sandbox Code Playgroud)
我想将这些数据加载到一个包含两个varchar列和一个int列的表中.但是周围的双引号让我感到麻烦.我创建了下表.
CREATE EXTERNAL TABLE Table(A varchar(50),B varchar(50),C varchar(50))
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\;'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
Run Code Online (Sandbox Code Playgroud)
但是该字段周围的引号也成为字段的一部分,如下所示.
"276725" "034545104X" "0"
"276726" "0155061224" "5"
Run Code Online (Sandbox Code Playgroud)
我想忽略它们.我还想把第三个字段读作INT.当我在制作表时将第三个字段作为INT提供时,它变为NULL.
你必须使用Csv-Serde.
CREATE TABLE Table(A varchar(50),B varchar(50),C varchar(50))
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES
(
"separatorChar" = ";",
"quoteChar" = "\""
)
STORED AS TEXTFILE;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12277 次 |
| 最近记录: |