HeartSaVioR commented on a change in pull request #23952: [SPARK-26929][SQL]fix 
table owner use user instead of principal when create table through spark-sql 
or beeline
URL: https://github.com/apache/spark/pull/23952#discussion_r322571141
 
 

 ##########
 File path: 
sql/hive/src/main/scala/org/apache/spark/sql/hive/client/HiveClientImpl.scala
 ##########
 @@ -220,7 +222,17 @@ private[hive] class HiveClientImpl(
     hiveConf
   }
 
-  private val userName = conf.getUser
+  private val userName = try {
+    val doAs = sys.env.get("HADOOP_USER_NAME").orNull
+    val ugi = if (doAs != null && doAs.length() > 0) {
+      UserGroupInformation.createProxyUser(doAs, 
UserGroupInformation.getLoginUser())
+    } else {
+      UserGroupInformation.getCurrentUser
+    }
+    ugi.getShortUserName
+  } catch {
+    case _: LoginException => throw new LoginException("Can not get login 
user.")
 
 Review comment:
   I guess things will fail with logging exception in caller site, so I guess 
the recommendation is just removing try/catch altogether.
   
   Hive source code has to do something (like wrapping as you've seen) because 
both `LoginException` and `IOException` are checked exceptions - given you're 
coding in Scala you can forget about that.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to