diff options
author | Wenchen Fan <wenchen@databricks.com> | 2016-12-13 09:46:58 -0800 |
---|---|---|
committer | Yin Huai <yhuai@databricks.com> | 2016-12-13 09:46:58 -0800 |
commit | d53f18cae41c6c77a0cff3f1fd266e4c1b9ea79a (patch) | |
tree | aa0bd298a7f5dec4855b24001238f87498585b19 /core | |
parent | 096f868b74d01c3dfc8f09e1e7dfc0ebab65226f (diff) | |
download | spark-d53f18cae41c6c77a0cff3f1fd266e4c1b9ea79a.tar.gz spark-d53f18cae41c6c77a0cff3f1fd266e4c1b9ea79a.tar.bz2 spark-d53f18cae41c6c77a0cff3f1fd266e4c1b9ea79a.zip |
[SPARK-18675][SQL] CTAS for hive serde table should work for all hive versions
## What changes were proposed in this pull request?
Before hive 1.1, when inserting into a table, hive will create the staging directory under a common scratch directory. After the writing is finished, hive will simply empty the table directory and move the staging directory to it.
After hive 1.1, hive will create the staging directory under the table directory, and when moving staging directory to table directory, hive will still empty the table directory, but will exclude the staging directory there.
In `InsertIntoHiveTable`, we simply copy the code from hive 1.2, which means we will always create the staging directory under the table directory, no matter what the hive version is. This causes problems if the hive version is prior to 1.1, because the staging directory will be removed by hive when hive is trying to empty the table directory.
This PR copies the code from hive 0.13, so that we have 2 branches to create staging directory. If hive version is prior to 1.1, we'll go to the old style branch(i.e. create the staging directory under a common scratch directory), else, go to the new style branch(i.e. create the staging directory under the table directory)
## How was this patch tested?
new test
Author: Wenchen Fan <wenchen@databricks.com>
Closes #16104 from cloud-fan/hive-0.13.
Diffstat (limited to 'core')
0 files changed, 0 insertions, 0 deletions