我在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()每个列。
1条答案
按热度按时间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中使其可用;