spark sql保存DataFrame成json格式与读取json数据成DataFrame

在hdfs上存储一个sql文件

cust.txt:

1,smith,12
2,bob,13
3,alex,14
4,alice,15
6,mike,26

 

1.将DataFrame转换为json数据格式

import org.apache.spark
import org.apache.spark.sql.SparkSession

/**
  * 将数据框保存成json数据
  */
object SparkSqlWriterJson {
  def main(args: Array[String]) :Unit={
    val spark=SparkSession.builder().appName("sparkSQL").master("local[*]").enableHiveSupport().getOrCreate()
    val rdd1=spark.sparkContext.textFile("/user/hadoop/data2/cust.txt")
    import spark.implicits._
    val df1=rdd1.map(line=>{
      val arr=line.split(",")
      (arr(0).toInt,arr(1),arr(2).toInt)
    }).toDF("id","name","age")
  //控制台打印数据
  df1.show(1000,false)
//将id>2的结果输出到g:/json目录下
    df1.where("id>2").write.json("file:///g:/json")
  }
}

保存的json数据格式如下:

分别打开两个文件:

spark sql保存DataFrame成json格式与读取json数据成DataFrame_第1张图片

part-00000-1e0bd14c-8a81-4e06-bcd0-e0775a0c039c-c000.json:

{"id":3,"name":"alex","age":14}
 

part-00001-1e0bd14c-8a81-4e06-bcd0-e0775a0c039c-c000.json:

{"id":4,"name":"alice","age":15}
{"id":6,"name":"mike","age":26}
 

2.将json数据转换成DataFrame

import org.apache.spark.sql.SparkSession

/**
  * 将json数据转换成DataFrame
  */
object SparkSqlReaderJson {
  def main(args: Array[String]):Unit= {
    val spark=SparkSession.builder().appName("sparkSQL").master("local[*]").enableHiveSupport().getOrCreate()
//读取g:/json目录下的json数据    
val df1=spark.read.json("file:///g:/json")
//打印
    df1.show(1000,false)
  }

}

控制台显示的数据为:

spark sql保存DataFrame成json格式与读取json数据成DataFrame_第2张图片

 

具体的Idea的spark sql环境搭建配置参看我前面的spark sql文章:

spark sql 在scala与java中的代码实现: https://blog.csdn.net/nengyu/article/details/95870479

你可能感兴趣的:(大数据)