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

Hive impala创建外部表并删除双引号,hive,hdfs,cloudera,impala,Hive,Hdfs,Cloudera,Impala,我获得了CSV数据,例如: “女性”、“44”、“0”、“0”、“是”、“政府工作”、“城市”、“103.59”、“32.7”、“以前吸烟” 我把它作为hdfs和hdfs放在一起 现在我想从它在impala上创建外部表(不在hive中) 有没有不带双引号的选项 这是我由黑斑羚壳公司经营的: CREATE EXTERNAL TABLE IF NOT EXISTS test_test.test1_ext ( `gender` STRING,`age` STRING,`hypertension` ST

我获得了CSV数据,例如: “女性”、“44”、“0”、“0”、“是”、“政府工作”、“城市”、“103.59”、“32.7”、“以前吸烟”

我把它作为hdfs和hdfs放在一起

现在我想从它在impala上创建外部表(不在hive中) 有没有不带双引号的选项

这是我由黑斑羚壳公司经营的:

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


我通过创建外部,然后创建一个视图作为select with case,当concat()每个列时。

Impala使用配置单元元存储,因此在发出无效元数据dbname.tablename后,在配置单元中创建的任何内容都可以从Impala获得。但是,要删除引号,您需要使用Hive Serde库“org.apache.hadoop.Hive.serde2.OpenCSVSerde”,这是从Impala无法访问的。我的建议如下:

  • 在配置单元中创建外部表 如果不存在,则创建外部表test\u test.test1\u ext (
    性别
    字符串,
    年龄
    字符串,
    高血压
    字符串,
    心脏病
    字符串,
    已婚
    字符串,
    工作类型
    字符串,
    居住类型
    字符串,
    平均血糖水平
    字符串,
    体重指数
    字符串,
    吸烟状态
    字符串) 行格式SERDE'org.apache.hadoop.hive.serde2.OpenCSVSerde' 具有serdeproperty ( “separatorChar”=“,”, “quoteChar”=“\” )
    存储为文本文件 位置“/user/test/tmp/test1”

  • 使用CTA在配置单元中创建托管表 从test\u test.test1\u ext创建表mytable作为SELECT*

  • 在黑斑羚中提供 使元数据db.mytable无效


  • 通过这种方法,我需要创建包含所有数据的表。我的建议是在impala上创建外部,然后在concat()每个列时创建带有case的视图。您不能使用impala中的SERDE作为我的答案状态。我的方法不需要使用SERDE