我有两个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;
答案 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。