Description
to reproduce this issue in spark-shell
val sqlContext = new org.apache.spark.sql.SQLContext(sc) import sqlContext._ import org.apache.hadoop.fs.{FileSystem, Path} case class TestRDDEntry(key: Int, value: String) val path = "/tmp/parquet_test" sc.parallelize((1 to 100)).map(i => TestRDDEntry(i, s"val_$i")).coalesce(1).saveAsParquetFile(path) val fsPath = new Path(path) val fs: FileSystem = fsPath.getFileSystem(sc.hadoopConfiguration) val children = fs.listStatus(fsPath).filter(_.getPath.getName.endsWith(".parquet")) val readFile = sqlContext.parquetFile(path + "/" + children(0).getPath.getName)
it throws exception:
java.lang.IllegalArgumentException: Expected file:/tmp/parquet_test/part-r-1.parquet for be a directory with Parquet files/metadata
at org.apache.spark.sql.parquet.ParquetTypesConverter$.readMetaData(ParquetTypes.scala:374)
at org.apache.spark.sql.parquet.ParquetTypesConverter$.readSchemaFromFile(ParquetTypes.scala:414)
at org.apache.spark.sql.parquet.ParquetRelation.<init>(ParquetRelation.scala:66)