鉴于Avro和Parquet文件包含该数据的数据和架构,那么在Spark中,应该可以将这些文件作为数据集而不是DataFrame读取。但是我看到的所有资源都是以DataFrame的形式阅读这些文件,而我无法将这些文件作为数据集读取。
有谁知道如何将这些文件作为数据集读取?
答案 0 :(得分:0)
def readParquet(spark: SparkSession): Unit = {
import org.apache.spark.sql._
import spark.implicits._
import Test._
spark.conf.set("spark.sql.parquet.enableVectorizedReader", "false") // This is optional, only if you face any spark parquet decoders
val schema = Encoders.product[TestData].schema
val ds =
spark.read
.schema(schema)
.parquet("data.parquet")
.as[TestData]
ds.show(false)
}
object Test {
case class TestData(id: Int, name: String, usedAmount: Double)
}