diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/text/TextSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/text/TextSuite.scala index b5e51e963f1b..ec0ee21bc3bb 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/text/TextSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/text/TextSuite.scala @@ -126,6 +126,22 @@ class TextSuite extends QueryTest with SharedSQLContext { } } + test("Write and read back empty data") { + withTempPath { path => + val df = spark.read.format("text").load(testFile) + val emptyDf = df.limit(0) + emptyDf.write + .format("text") + .save(path.getCanonicalPath) + + val copyEmptyDf = spark.read + .format("text") + .load(path.getCanonicalPath) + + checkAnswer(emptyDf, copyEmptyDf) + } + } + private def testFile: String = { Thread.currentThread().getContextClassLoader.getResource("text-suite.txt").toString } diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/sources/JsonHadoopFsRelationSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/sources/JsonHadoopFsRelationSuite.scala index ef37787137d0..d1eee4f115d5 100644 --- a/sql/hive/src/test/scala/org/apache/spark/sql/sources/JsonHadoopFsRelationSuite.scala +++ b/sql/hive/src/test/scala/org/apache/spark/sql/sources/JsonHadoopFsRelationSuite.scala @@ -108,4 +108,19 @@ class JsonHadoopFsRelationSuite extends HadoopFsRelationTest { ) } } + + test("Write and read back empty data") { + withTempPath { path => + val emptyDf = spark.range(10).limit(0).toDF() + emptyDf.write + .format(dataSourceName) + .save(path.getCanonicalPath) + + val copyEmptyDf = spark.read + .format(dataSourceName) + .load(path.getCanonicalPath) + + assert(copyEmptyDf.count() === 0) + } + } } diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/sources/ParquetHadoopFsRelationSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/sources/ParquetHadoopFsRelationSuite.scala index 4b4852c1d793..cbb2ed38ea45 100644 --- a/sql/hive/src/test/scala/org/apache/spark/sql/sources/ParquetHadoopFsRelationSuite.scala +++ b/sql/hive/src/test/scala/org/apache/spark/sql/sources/ParquetHadoopFsRelationSuite.scala @@ -228,4 +228,19 @@ class ParquetHadoopFsRelationSuite extends HadoopFsRelationTest { } } } + + test("Write and read back empty data") { + withTempPath { path => + val emptyDf = spark.range(10).limit(0).toDF() + emptyDf.write + .format(dataSourceName) + .save(path.getCanonicalPath) + + val copyEmptyDf = spark.read + .format(dataSourceName) + .load(path.getCanonicalPath) + + checkAnswer(emptyDf, copyEmptyDf) + } + } }