spark DataFrame&DataSet 注册临时表

发布时间:2022-06-23 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了spark DataFrame&DataSet 注册临时表脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

将 DataFrame&DataSet 注册成为临时表,然后通过 SQL 语句进行查询 

createOrReplaceTempView createTempView 创建临时视图,此视图的生命周期与用于创建此数据集的 SparkSession 相关联 

createOrReplaceGlobalTempView createGlobalTempView 创建全局临时视图,此时图的生命周期与 Spark Application 绑定。

dropTempView dropGlobalTempView 删除视图

一、创建临时视图 createorreplacetempView

package org.hnsw

import org.apache.spark.sql.SparkSession
//样本类 三个字段 userid(用户id)、artistid(艺术家ID)、playcount(播放次数)
case class UserArtist(userid:String, attiscleid:String, playcount:Int)
object SparkLearn {

  def main(args: Array[String]): Unit = {
    val session = SparkSession.builder().appName("jxq").master("local[*]").getOrCreate()
    //1、以rdd的方式读取文本
    val user_artist_dataRddjxq = session.sparkContext.textFile("file:///F:\user_artist_data.txt")
    //2.映射字段名 和 字段值
    val artRdd = user_artist_dataRddjxq.map((x)=>{
      val re = x.split(" ")
      UserArtist(re(0), re(1), re(2).trim.toInt)
    })
    //使用隐式函数,toDs
    import session.implicits._
    val ds = artRdd.toDS()
    //4、创建一个视图 createorreplacetempView
    ds.createOrReplaceTempView("user_artist_jxq")
    //5、使用sql查询语句
    session.sql("select * from user_artist_jxq").show()
    //6、释放sesion和视图表
    session.close()

  }
}

效果演示

spark DataFrame&DataSet 注册临时表

二、创建全局临时视图 createGlobalTempView

全局表自动在 global_temp 库下创建,访问需要指定库名

package org.hnsw

import org.apache.spark.sql.SparkSession

object SparkGloabalLearn {
  def main(args: Array[String]): Unit = {
    val session = SparkSession.builder().appName("jxq").master("local[*]").getOrCreate()
    //1、以rdd的方式读取文本
    val user_artist_dataRddjxq = session.sparkContext.textFile("file:///F:\user_artist_data.txt")
    //2.映射字段名 和 字段值
    val artRdd = user_artist_dataRddjxq.map((x)=>{
      val re = x.split(" ")
      UserArtist(re(0), re(1), re(2).trim.toInt)
    })
    //使用隐寺函数,toDs
    import session.implicits._
    val ds = artRdd.toDS()
    //4、创建一个视图 createGlobalTempView全局
    ds.createGlobalTempView("global_user_artist_jxq")
    //5、使用sql查询语句
    session.sql("select * from global_temp.global_user_artist_jxq").show()
    //6、释放sesion和视图表
    session.close()
  }

}

 

效果演示

spark DataFrame&DataSet 注册临时表

 

脚本宝典总结

以上是脚本宝典为你收集整理的spark DataFrame&DataSet 注册临时表全部内容,希望文章能够帮你解决spark DataFrame&DataSet 注册临时表所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: