Github user gatorsmile commented on a diff in the pull request:
https://github.com/apache/spark/pull/16636#discussion_r99647218
--- Diff:
sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveDDLSuite.scala
---
@@ -79,6 +79,25 @@ class HiveDDLSuite
}
}
+ test("create a hive table without schema") {
+ import testImplicits._
+ withTempPath { tempDir =>
+ withTable("tab1", "tab2") {
+ (("a", "b") :: Nil).toDF().write.json(tempDir.getCanonicalPath)
+
+ var e = intercept[AnalysisException] { sql("CREATE TABLE tab1
USING hive") }.getMessage
+ assert(e.contains("Unable to infer the schema. The schema
specification is required to " +
+ "create the table `default`.`tab1`"))
+
+ e = intercept[AnalysisException] {
+ sql(s"CREATE TABLE tab2 location '${tempDir.getCanonicalPath}'")
--- End diff --
Found an interesting case. I am thinking we need to support what Hive did
in `CREATE TABLE LIKE`. That is, allowing users to create another table with a
different data source provider:
```
CREATE TABLE avro_test ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.avro.AvroSerDe' STORED AS AVRO TBLPROPERTIES
('avro.schema.url'='myHost/myAvroSchema.avsc');
CREATE EXTERNAL TABLE parquet_test LIKE avro_test STORED AS PARQUET
LOCATION 'hdfs://myParquetFilesPath';
```
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]