Author: xuefu
Date: Tue Dec 16 05:17:09 2014
New Revision: 1645842

URL: http://svn.apache.org/r1645842
Log:
HIVE-9101: bucket_map_join_spark4.q failed due to NPE.[Spark Branch] (Jimmy via 
Xuefu)

Modified:
    hive/branches/spark/data/conf/spark/hive-site.xml
    
hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java
    
hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/optimizer/AbstractBucketJoinProc.java
    
hive/branches/spark/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out

Modified: hive/branches/spark/data/conf/spark/hive-site.xml
URL: 
http://svn.apache.org/viewvc/hive/branches/spark/data/conf/spark/hive-site.xml?rev=1645842&r1=1645841&r2=1645842&view=diff
==============================================================================
--- hive/branches/spark/data/conf/spark/hive-site.xml (original)
+++ hive/branches/spark/data/conf/spark/hive-site.xml Tue Dec 16 05:17:09 2014
@@ -220,4 +220,9 @@
   
<value>${maven.local.repository}/org/apache/hive/hive-it-util/${hive.version}/hive-it-util-${hive.version}.jar</value>
 </property>
 
+<property>
+  <name>hive.users.in.admin.role</name>
+  <value>hive_admin_user</value>
+</property>
+
 </configuration>

Modified: 
hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java
URL: 
http://svn.apache.org/viewvc/hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java?rev=1645842&r1=1645841&r2=1645842&view=diff
==============================================================================
--- 
hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java
 (original)
+++ 
hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/HashTableLoader.java
 Tue Dec 16 05:17:09 2014
@@ -97,13 +97,17 @@ public class HashTableLoader implements
         }
         String bigInputPath = currentInputPath;
         if (currentInputPath != null && mapJoinCtx != null) {
-          Set<String> aliases =
-            
((SparkBucketMapJoinContext)mapJoinCtx).getPosToAliasMap().get(pos);
-          String alias = aliases.iterator().next();
-          // Any one small table input path
-          String smallInputPath =
-            
mapJoinCtx.getAliasBucketFileNameMapping().get(alias).get(bigInputPath).get(0);
-          bigInputPath = mapJoinCtx.getMappingBigFile(alias, smallInputPath);
+          if (!desc.isBucketMapJoin()) {
+            bigInputPath = null;
+          } else {
+            Set<String> aliases =
+              
((SparkBucketMapJoinContext)mapJoinCtx).getPosToAliasMap().get(pos);
+            String alias = aliases.iterator().next();
+            // Any one small table input path
+            String smallInputPath =
+              
mapJoinCtx.getAliasBucketFileNameMapping().get(alias).get(bigInputPath).get(0);
+            bigInputPath = mapJoinCtx.getMappingBigFile(alias, smallInputPath);
+          }
         }
         String fileName = localWork.getBucketFileName(bigInputPath);
         Path path = Utilities.generatePath(baseDir, desc.getDumpFilePrefix(), 
(byte)pos, fileName);

Modified: 
hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/optimizer/AbstractBucketJoinProc.java
URL: 
http://svn.apache.org/viewvc/hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/optimizer/AbstractBucketJoinProc.java?rev=1645842&r1=1645841&r2=1645842&view=diff
==============================================================================
--- 
hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/optimizer/AbstractBucketJoinProc.java
 (original)
+++ 
hive/branches/spark/ql/src/java/org/apache/hadoop/hive/ql/optimizer/AbstractBucketJoinProc.java
 Tue Dec 16 05:17:09 2014
@@ -240,12 +240,14 @@ abstract public class AbstractBucketJoin
         for (Map.Entry<String, Operator<? extends OperatorDesc>> topOpEntry : 
topOps.entrySet()) {
           if (topOpEntry.getValue() == tso) {
             String newAlias = topOpEntry.getKey();
-            joinAliases.set(index, newAlias);
-            if (baseBigAlias.equals(alias)) {
-              baseBigAlias = newAlias;
+            if (!newAlias.equals(alias)) {
+              joinAliases.set(index, newAlias);
+              if (baseBigAlias.equals(alias)) {
+                baseBigAlias = newAlias;
+              }
+              aliasToNewAliasMap.put(alias, newAlias);
+              alias = newAlias;
             }
-            aliasToNewAliasMap.put(alias, newAlias);
-            alias = newAlias;
             break;
           }
         }

Modified: 
hive/branches/spark/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out
URL: 
http://svn.apache.org/viewvc/hive/branches/spark/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out?rev=1645842&r1=1645841&r2=1645842&view=diff
==============================================================================
--- 
hive/branches/spark/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out
 (original)
+++ 
hive/branches/spark/ql/src/test/results/clientpositive/spark/bucket_map_join_spark4.q.out
 Tue Dec 16 05:17:09 2014
@@ -448,6 +448,64 @@ POSTHOOK: Input: default@tbl1
 POSTHOOK: Input: default@tbl2
 POSTHOOK: Input: default@tbl3
 #### A masked pattern was here ####
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+0      val_0   val_0   val_0
+2      val_2   val_2   val_2
+4      val_4   val_4   val_4
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+5      val_5   val_5   val_5
+8      val_8   val_8   val_8
+9      val_9   val_9   val_9
 PREHOOK: query: explain extended
 select a.key as key, a.value as val1, b.value as val2, c.value as val3
 from tbl1 a join tbl2 b on a.key = b.key join tbl3 c on a.value = c.value


Reply via email to