Skip to content

Commit 741a54c

Browse files
committed
[SPARK-52812][SQL] Make Spark Connect Catalog.createTable eager
1 parent 846376a commit 741a54c

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

sql/connect/client/jvm/src/test/scala/org/apache/spark/sql/connect/CatalogSuite.scala

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,19 @@ class CatalogSuite extends ConnectFunSuite with RemoteSparkSession with SQLHelpe
151151
assert(spark.catalog.listTables().collect().isEmpty)
152152
}
153153

154+
test("createTable should be eager") {
155+
val tableName = "eager_table"
156+
withTable(tableName) {
157+
withTempPath { dir =>
158+
val session = spark
159+
import session.implicits._
160+
Seq((1, "a")).toDF("id", "value").write.parquet(dir.getPath)
161+
spark.catalog.createTable(tableName, dir.getPath)
162+
assert(spark.catalog.tableExists(tableName))
163+
}
164+
}
165+
}
166+
154167
test("Cache Table APIs") {
155168
val parquetTableName = "parquet_table"
156169
withTable(parquetTableName) {

sql/connect/common/src/main/scala/org/apache/spark/sql/connect/Catalog.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ class Catalog(sparkSession: SparkSession) extends catalog.Catalog {
484484
schema: StructType,
485485
description: String,
486486
options: Map[String, String]): DataFrame = {
487-
sparkSession.newDataFrame { builder =>
487+
val df = sparkSession.newDataFrame { builder =>
488488
val createTableBuilder = builder.getCatalogBuilder.getCreateTableBuilder
489489
.setTableName(tableName)
490490
.setSource(source)
@@ -494,6 +494,8 @@ class Catalog(sparkSession: SparkSession) extends catalog.Catalog {
494494
createTableBuilder.putOptions(k, v)
495495
}
496496
}
497+
df.collect()
498+
df
497499
}
498500

499501
/**

0 commit comments

Comments
 (0)