11.3 读取 Parquet 文件

Parquet 是一种流行的列式存储格式,可以高效地存储具有嵌套字段的记录。Parquet 格式经常在 Hadoop 生态圈中被使用,它也支持 Spark SQL 的全部数据类型。Spark SQL 提供了直接读取和存储 Parquet 格式文件的方法。

package day05

import org.apache.spark.sql.{DataFrame, Dataset, SaveMode, SparkSession}

object DataSourceDemo {
    def main(args: Array[String]): Unit = {
        val spark: SparkSession = SparkSession
            .builder()
            .master("local[*]")
            .appName("Test")
            .getOrCreate()
        import spark.implicits._

        val jsonDF: DataFrame = spark.read.json("target/classes/user.json")
        jsonDF.write.mode(SaveMode.Overwrite).parquet("target/classes/user.parquet")

        val parDF: DataFrame = spark.read.parquet("target/classes/user.parquet")
        val userDS: Dataset[User] = parDF.as[User]
        userDS.map(user => {user.name = "zl"; user.friends(0) = "志玲";user}).show()
    }
}
case class User(var name:String, age: Long, friends: Array[String])


注意:

Parquet格式的文件是 Spark 默认格式的数据源.所以, 当使用通用的方式时可以直接保存和读取.而不需要使用format

spark.sql.sources.default 这个配置可以修改默认数据源

Copyright © 尚硅谷大数据 2019 all right reserved,powered by Gitbook
该文件最后修订时间: 2019-08-09 00:21:43

results matching ""

    No results matching ""