impala创建外部表并删除双引号

8ulbf1ek  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(636)

我在csv上得到了一些数据,例如:“女性”,“44”,“0”,“0”,“是”,“政府工作”,“城市”,“103.59”,“32.7”,“以前吸烟”
我把它作为hdfs和hdfs放在一起
现在我想在impala上创建一个外部表(不在hive中),有没有不带双引号的选项?
这是我经营的 Impala 贝壳公司:

CREATE EXTERNAL TABLE IF NOT EXISTS test_test.test1_ext
( `gender` STRING,`age` STRING,`hypertension` STRING,`heart_disease` STRING,`ever_married` STRING,`work_type` STRING,`Residence_type` STRING,`avg_glucose_level` STRING,`bmi` STRING,`smoking_status` STRING ) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION "/user/test/tmp/test1"

更新28.11
我通过创建external,然后创建一个视图作为select with case when concat()每个列。

cpjpxq1n

cpjpxq1n1#

impala使用配置单元元存储,因此在发出invalidatemetadata dbname.tablename之后,在配置单元中创建的任何内容都可以从impala获得。但是,要删除引号,您需要使用hiveserde库'org.apache.hadoop.hive.serde2.opencsvserde',而这不能从impala访问。我的建议是:
在配置单元中创建外部表创建外部表如果不存在test\u test.test1\u ext( gender 字符串, age 字符串, hypertension 字符串, heart_disease 字符串, ever_married 字符串, work_type 字符串, Residence_type 字符串, avg_glucose_level 字符串, bmi 字符串, smoking_status 字符串)行格式serde'org.apache.hadoop.hive.serde2.opencsvserde',带有serdeproperty(“separatorchar”=“,”,“quotechar”=“\”)
存储为textfile location“/user/test/tmp/test1”
使用ctas create table mytable as select*from test\u test.test1\u ext在配置单元中创建托管表;
在impala invalidate metadata db.mytable中使其可用;

相关问题