Skip to content

Commit 7c0a648

Browse files
committed
[HOTFIX] [SQL] Disables Metastore Parquet table conversion for "SQLQuerySuite.CTAS with serde"
Ideally we should convert Metastore Parquet tables with our own Parquet implementation on both read path and write path. However, the write path is not well covered, and causes this test failure. This PR is a hotfix to bring back Jenkins PR builder. A proper fix will be delivered in a follow-up PR. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/apache/spark/4413) <!-- Reviewable:end --> Author: Cheng Lian <[email protected]> Closes apache#4413 from liancheng/hotfix-parquet-ctas and squashes the following commits: 5291289 [Cheng Lian] Hot fix for "SQLQuerySuite.CTAS with serde"
1 parent e8a5d50 commit 7c0a648

File tree

1 file changed

+30
-27
lines changed

1 file changed

+30
-27
lines changed

sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/SQLQuerySuite.scala

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,10 @@
1717

1818
package org.apache.spark.sql.hive.execution
1919

20-
import org.apache.spark.sql.QueryTest
21-
22-
import org.apache.spark.sql.Row
20+
import org.apache.spark.sql.hive.HiveShim
2321
import org.apache.spark.sql.hive.test.TestHive._
2422
import org.apache.spark.sql.types._
25-
import org.apache.spark.util.Utils
26-
import org.apache.spark.sql.hive.HiveShim
23+
import org.apache.spark.sql.{QueryTest, Row, SQLConf}
2724

2825
case class Nested1(f1: Nested2)
2926
case class Nested2(f2: Nested3)
@@ -109,28 +106,34 @@ class SQLQuerySuite extends QueryTest {
109106
)
110107

111108
if (HiveShim.version =="0.13.1") {
112-
sql(
113-
"""CREATE TABLE ctas5
114-
| STORED AS parquet AS
115-
| SELECT key, value
116-
| FROM src
117-
| ORDER BY key, value""".stripMargin).collect
118-
119-
checkExistence(sql("DESC EXTENDED ctas5"), true,
120-
"name:key", "type:string", "name:value", "ctas5",
121-
"org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat",
122-
"org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat",
123-
"org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe",
124-
"MANAGED_TABLE"
125-
)
126-
127-
val default = getConf("spark.sql.hive.convertMetastoreParquet", "true")
128-
// use the Hive SerDe for parquet tables
129-
sql("set spark.sql.hive.convertMetastoreParquet = false")
130-
checkAnswer(
131-
sql("SELECT key, value FROM ctas5 ORDER BY key, value"),
132-
sql("SELECT key, value FROM src ORDER BY key, value").collect().toSeq)
133-
sql(s"set spark.sql.hive.convertMetastoreParquet = $default")
109+
val origUseParquetDataSource = conf.parquetUseDataSourceApi
110+
try {
111+
setConf(SQLConf.PARQUET_USE_DATA_SOURCE_API, "false")
112+
sql(
113+
"""CREATE TABLE ctas5
114+
| STORED AS parquet AS
115+
| SELECT key, value
116+
| FROM src
117+
| ORDER BY key, value""".stripMargin).collect()
118+
119+
checkExistence(sql("DESC EXTENDED ctas5"), true,
120+
"name:key", "type:string", "name:value", "ctas5",
121+
"org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat",
122+
"org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat",
123+
"org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe",
124+
"MANAGED_TABLE"
125+
)
126+
127+
val default = getConf("spark.sql.hive.convertMetastoreParquet", "true")
128+
// use the Hive SerDe for parquet tables
129+
sql("set spark.sql.hive.convertMetastoreParquet = false")
130+
checkAnswer(
131+
sql("SELECT key, value FROM ctas5 ORDER BY key, value"),
132+
sql("SELECT key, value FROM src ORDER BY key, value").collect().toSeq)
133+
sql(s"set spark.sql.hive.convertMetastoreParquet = $default")
134+
} finally {
135+
setConf(SQLConf.PARQUET_USE_DATA_SOURCE_API, origUseParquetDataSource.toString)
136+
}
134137
}
135138
}
136139

0 commit comments

Comments
 (0)