diff --git a/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/spark/sql/catalyst/catalog/HoodieCatalogTable.scala b/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/spark/sql/catalyst/catalog/HoodieCatalogTable.scala index 09981e845a108..47cae14ae94b4 100644 --- a/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/spark/sql/catalyst/catalog/HoodieCatalogTable.scala +++ b/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/spark/sql/catalyst/catalog/HoodieCatalogTable.scala @@ -129,7 +129,17 @@ class HoodieCatalogTable(val spark: SparkSession, var table: CatalogTable) exten /** * Table schema */ - lazy val tableSchema: StructType = table.schema + lazy val tableSchema: StructType = if (table.schema.nonEmpty) { + table.schema + } else { + val schemaFromMetaOpt = loadTableSchemaByMetaClient() + if (schemaFromMetaOpt.nonEmpty) { + schemaFromMetaOpt.get + } else { + throw new AnalysisException( + s"Missing schema fields when applying CREATE TABLE clause for $catalogTableName") + } + } /** * The schema without hoodie meta fields