maropu commented on a change in pull request #27690: [SPARK-21514][SQL] Added a
new option to use non-blobstore storage when writing into blobstore storage
URL: https://github.com/apache/spark/pull/27690#discussion_r386081888
##########
File path:
sql/hive/src/main/scala/org/apache/spark/sql/hive/execution/SaveAsHiveFile.scala
##########
@@ -125,10 +162,23 @@ private[hive] trait SaveAsHiveFile extends
DataWritingCommand {
val stagingDir = hadoopConf.get("hive.exec.stagingdir", ".hive-staging")
val scratchDir = hadoopConf.get("hive.exec.scratchdir", "/tmp/hive")
+ // Hive sets session_path as
HDFS_SESSION_PATH_KEY(_hive.hdfs.session.path) in hive config
+ val sessionScratchDir =
externalCatalog.unwrapped.asInstanceOf[HiveExternalCatalog]
+ .client.getConf("_hive.hdfs.session.path", "")
+ logDebug(s"path '${path.toString}', staging dir '$stagingDir', " +
+ s"scratch dir '$scratchDir', session scratch dir '$sessionScratchDir'
are used")
+
if (hiveVersionsUsingOldExternalTempPath.contains(hiveVersion)) {
oldVersionExternalTempPath(path, hadoopConf, scratchDir)
} else if (hiveVersionsUsingNewExternalTempPath.contains(hiveVersion)) {
- newVersionExternalTempPath(path, hadoopConf, stagingDir)
+ // HIVE-14270: Write temporary data to HDFS when doing inserts on tables
located on S3
+ // Copied from Context.java#getTempDirForPath of Hive 2.3
+ if (isBlobStoragePath(hadoopConf, path)
+ && !useBlobStorageAsScratchDir(hadoopConf)) {
+ getMRTmpPath(hadoopConf, sessionScratchDir, scratchDir)
Review comment:
btw, we need to use the same config name with hive?
----------------------------------------------------------------
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]