我想验证我的 SMB 加入是否正常工作。我可以通过日志验证映射加入,但不能通过 SMB。我也执行了解释计划,但无法得到任何提示。请帮我。
您可以对查询使用 EXPLAIN EXTENDED。到目前为止,我只能使用 map-reduce 生成 SMB 映射连接。当 hive 执行 SMB 映射连接时,您可以在解释输出中的阶段计划下看到“排序合并桶映射连接运算符”。
以下是在我的设置中使用 map-reduce 生成 SMB 映射连接的代码片段:
set hive.execution.engine=mr;
set hive.auto.convert.sortmerge.join=true;
set hive.optimize.bucketmapjoin=true;
set hive.optimize.bucketmapjoin.sortedmerge=true;
set hive.enforce.bucketing=true;
set hive.enforce.sorting=true;
set hive.auto.convert.join=true;
drop table key_value_large;
drop table key_value_small;
create table key_value_large (
key int,
value string
)
partitioned by (ds string)
CLUSTERED BY (key) SORTED BY (key ASC) INTO 8 BUCKETS
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE;
create table key_value_small (
key int,
value string
)
partitioned by (ds string)
CLUSTERED BY (key) SORTED BY (key ASC) INTO 4 BUCKETS
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' STORED AS TEXTFILE;
insert into table key_value_large partition(ds='2008-04-08') select key, value from key_value_large_src;
insert into table key_value_small partition(ds='2008-04-08') select key, value from key_value_small_src;
explain extended select count(*) from key_value_large a JOIN key_value_small b ON a.key = b.key;
select count(*) from key_value_large a JOIN key_value_small b ON a.key = b.key;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助某人。
| 归档时间: |
|
| 查看次数: |
2715 次 |
| 最近记录: |