Github user gatorsmile commented on a diff in the pull request:

    https://github.com/apache/spark/pull/16636#discussion_r99645731
  
    --- 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 --
    
    Based on the official Hive document about [Row Formats & 
SerDe](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-RowFormats&SerDe),
 users must specify the columns of the schema for the native SerDe. For the 
custom SerDe, Hive will query the SerDe to get the columns in the schema. It 
does not sounds Hive has such a capability to infer the schema from the data 
files. 
    
    Actually, there is two unresolved tickets for it. 
https://issues.apache.org/jira/browse/HIVE-8950 and 
https://issues.apache.org/jira/browse/HIVE-10593. It sounds like the Hive 
community prefers to adding a new DDL syntax to get the table schema from a 
Parquet file (or some other format), but it is not available in Hive yet


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

Reply via email to