Hive Join返回零记录

时间:2013-08-21 15:30:25

标签: join hadoop hive

我有两个Hive表,我正在尝试加入它们。这些表不是由任何字段聚集或分区的。虽然表包含公共键字段的记录,但连接查询始终返回0条记录。所有数据类型都是“字符串”数据类型。

连接查询很简单,如下所示

select count(*) cnt
from
fsr.xref_1 A join
fsr.ipfile_1 B 
on 
(
    A.co_no = B.co_no 
)
;

知道可能出现什么问题吗?我在这两个表中只有一个记录(相同的值)。

以下是我的表格定义

CREATE TABLE xref_1 
(
co_no string
)
clustered by (co_no) sorted by (co_no asc) into 10 buckets
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;

CREATE TABLE ipfile_1
(
co_no string
)
clustered by (co_no) sorted by (co_no asc) into 10 buckets
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;

1 个答案:

答案 0 :(得分:0)

您好,您正在使用 Star Schema Join 。请使用您的查询:

SELET COUNT(*) cnt FROM A a JOIN B b ON (a.key1 = b.key1);

如果仍然有问题然后使用 MAPJOIN

set hive.auto.convert.join=true;
select count(*) from A join B on (key1 = key2)

有关详细信息,请参阅Link