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数据格式如下:

分别打开两个文件:

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)
  }

}

控制台显示的数据为:

 

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值