0

我有两个 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;
4

1 回答 1

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)

请参阅链接了解更多详细信息。

于 2013-08-21T17:17:52.917 回答