我试着用一个 JOIN
没有 ON
财产。
我运行的查询方式如下:
hive -v -f my_file.hql
我收到这个信息:
在严格模式下,不允许笛卡尔积。如果确实要执行该操作,请设置hive.mapred.mode=nonstrict
我用以下内容更新hql文件: set hive.mapred.mode=nonstrict
最重要的是。
但后来我得到一个信息:
set hive.mapred.mode=nonstrict查询返回非零代码:1,原因:无法在运行时修改hive.mapred.mode。它位于运行时不能修改的参数列表中
我怎样才能解决这个问题?
ps:我想做这个 cartesian product
.
我怎么做到的?在那里我可以设置这个变量 hive.mapred.mode
作品?
1条答案
按热度按时间nzk0hqpo1#
正如您已经知道的,严格模式下不允许使用笛卡尔积(并且有充分的理由)。在您的用例中,您似乎没有权限对这些类型的配置单元设置进行更改。
为了解决这个问题,你可以做以下几点。首先创建两个新表
然后把这些表连接起来
join_key
. 结果将是笛卡尔积,因为它将匹配table1
每行table2
.刚刚发现使用--hiveconf解决了这个问题:
将允许
nonstrict mode
专门用于此查询。