private Task<? extends Serializable> resolveDriverAlias(ConditionalResolverCommonJoinCtx ctx, HiveConf conf) { try { resolveUnknownSizes(ctx, conf); return resolveMapJoinTask(ctx, conf); } catch (Exception e) { LOG.info("Failed to resolve driver alias by exception.. Falling back to common join", e); } return null; }
private Task<? extends Serializable> resolveDriverAlias(ConditionalResolverCommonJoinCtx ctx, HiveConf conf) { try { resolveUnknownSizes(ctx, conf); return resolveMapJoinTask(ctx, conf); } catch (Exception e) { LOG.info("Failed to resolve driver alias by exception.. Falling back to common join", e); } return null; }
Task resolved = resolver.resolveMapJoinTask(ctx, conf); Assert.assertEquals("alias3", resolved.getId()); resolved = resolver.resolveMapJoinTask(ctx, conf); Assert.assertEquals("alias3", resolved.getId()); resolved = resolver.resolveMapJoinTask(ctx, conf); Assert.assertNull(resolved);
private Task<? extends Serializable> resolveDriverAlias(ConditionalResolverCommonJoinCtx ctx, HiveConf conf) { try { resolveUnknownSizes(ctx, conf); return resolveMapJoinTask(ctx, conf); } catch (Exception e) { LOG.info("Failed to resolve driver alias by exception.. Falling back to common join", e); } return null; }
@Override public List<Task<? extends Serializable>> getTasks(HiveConf conf, Object objCtx) { ConditionalResolverCommonJoinCtx ctx = (ConditionalResolverCommonJoinCtx) objCtx; List<Task<? extends Serializable>> resTsks = new ArrayList<Task<? extends Serializable>>(); // get aliasToPath and pass it to the heuristic HashMap<String, String> aliasToPath = ctx.getAliasToPath(); String bigTableAlias = this.resolveMapJoinTask(aliasToPath, conf); if (bigTableAlias == null) { // run common join task resTsks.add(ctx.getCommonJoinTask()); } else { // run the map join task Task<? extends Serializable> task = ctx.getAliasToTask().get(bigTableAlias); //set task tag if(task.getTaskTag() == Task.CONVERTED_LOCAL_MAPJOIN) { task.getBackupTask().setTaskTag(Task.BACKUP_COMMON_JOIN); } resTsks.add(task); } return resTsks; }