如何将数据加载到Hive表并使其在Impala中也可访问

时间:2018-12-03 00:55:26

标签: hive impala

我在Hive中有一张桌子:

CREATE EXTERNAL TABLE sr2015(
creation_date STRING,
status STRING,
first_3_chars_of_postal_code STRING,
intersection_street_1 STRING,
intersection_street_2 STRING,
ward STRING,
service_request_type STRING,
division STRING,
section STRING )
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES (
'colelction.delim'='\u0002',
'field.delim'=',',
'mapkey.delim'='\u0003',
'serialization.format'=',', 'skip.header.line.count'='1',
'quoteChar'= "\"")

该表以这种方式加载数据:

LOAD DATA INPATH "hdfs:///user/rxie/SR2015.csv" INTO TABLE sr2015;

为什么只能在Hive中访问该表?当我尝试在HUE / Impala编辑器中访问它时,出现以下错误:

  

AnalysisException:无法解析表引用:'sr2015'

似乎没有这样的表格,但该表格确实显示在左侧面板中。

在Impala-shell中,错误如下:

  

错误:AnalysisException:无法加载表“ sr2015”的元数据   原因:TableLoadingException:无法加载表的元数据:   sr2015原因:InvalidStorageDescriptorException:Impala没有   这种类型的支持表。原因:SerDe库   不支持“ org.apache.hadoop.hive.serde2.OpenCSVSerde”。

我一直认为Hive表和Impala表本质上是相同的,不同之处在于Impala是更高效的查询引擎。

有人可以帮忙解决吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

假设sr2015位于名为db的数据库中,为了使该表在Impala中可见,您都需要发布

  

使元数据数据库无效;

  

使元数据db.sr2015无效;

在Impala外壳中

但是,在您的情况下,原因可能是您使用的Impala版本,因为它完全不支持表格格式