SparkSQL之缓存表

 val conf = new SparkConf().setMaster("local").setAppName("ScalaDataFrameOps")
  val sc = new SparkContext(conf)
  val sqlContext = new SQLContext(sc)
  val listRDD = sc.parallelize(List("zhangsan 13 168.5", "lisi 14 175.3", "wangwu 15 176.3"))
  import sqlContext.implicits._
  val rowRDD = listRDD.map(line => {
    val splits = line.split(" ")
    val name = splits(0).trim
    val age = splits(1).trim.toInt
    val height = splits(2).trim.toDouble
    (name, age, height)
  })
  val df = rowRDD.toDF("name", "age", "height")
  df.registerTempTable("person")
  //缓存一张临时表
  sqlContext.cacheTable("person")

  val sqlDF = sqlContext.sql("select name, age, height from person where age > 14")
  sqlDF.show()
  val orderDF = sqlContext.sql("select name, age, height from person order by height desc")
  orderDF.show()
  //卸载一张临时表-->从内存中清除相关数据
  sqlContext.uncacheTable("person")
  sc.stop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值