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 exception - 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]