SparkSQL读取Json格式的RDD加载DatFrame

示例代码:

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

/**
 * 读取json格式的RDD就是RDD中的String是一个json字符串。
 * Spark2.0 之前 session.read.json(JSONRDD)
 * Spark2.0之后 session.read.json(JSONDATASET)
 */
object ReadJsonRDDToDF {
  def main(args: Array[String]): Unit = {
    val session = SparkSession.builder().master("local").appName("test").getOrCreate()

    val jsonArr: Array[String] = Array[String](
      "{\"name\":\"zhangsan\",\"age\":18}",
      "{\"name\":\"lisi\",\"age\":19}",
      "{\"name\":\"wangwu\",\"age\":20}",
      "{\"name\":\"maliu\",\"age\":21}",
      "{\"name\":\"tianqi\",\"age\":22}"
    )
    import session.implicits._
    val jsonDataset: Dataset[String] = jsonArr.toList.toDS()

    val df1: DataFrame = session.read.json(jsonDataset)
    df1.createTempView("t")
    val df2: DataFrame = session.sql("select name,age from t where name like '%zhangsan%'")
    df2.show()

    //    frame.show()

    /**
     * Spark2.0 之前处理方式
     */
    //    val sc: SparkContext = session.sparkContext
    //    sc.setLogLevel("Error")
    //    val jsonRDD: RDD[String] = sc.parallelize(jsonArr)
    //    val frame: DataFrame = session.read.json(jsonRDD)
    //    frame.show()
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值