将DataFrame转为Json文件

json在读取数据的时候会读取schema描述信息,读取全部数据,才能确定类型

写出文件二种方式 

//df2.write.mode(SaveMode.Append).json("out/boy") df2.write.mode(SaveMode.Append).format("json").save("out2/boy")

 读取文件二种方式

//获取数据的schema信息,每一行都有读取,将描述信息返回Driver端了 //val df: DataFrame = spark.read.json("data/user.json")

val df: DataFrame = spark.read.format("json").load("data/user.json")

json将描述信息返回到Driver端,它是最特殊的,它读取每一行数据,才能确定属性

 读取json,过滤掉脏数据

object CreateDataFrameFromJSON {
  def main(args: Array[String]): Unit = {

    val spark = SparkSession.builder().appName(this.getClass.getSimpleName).master("local[*]").getOrCreate()

    val df = spark.read.json("bigdata\user.json")

    df.printSchema()
   /*   import spark.implicits._
    df.where($"_corrupt_record" isNull).show()*/
    df.filter(it=>{
      it.getString(0)==null
    }).select("name","age").show()

    spark.stop()



  }

}

 

经验分享 程序员 微信小程序 职场和发展