SparkSql 查询

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

object SparkSqlDemo {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setAppName("demo").setMaster("local[*]")
    val spark = SparkSession.builder().config(sparkConf).getOrCreate()
    val sc = spark.sparkContext
    sc.setLogLevel("ERROR")
    import spark.implicits._

    val array = Array(("aa",11),
      ("bb",22),("cc",33))
    val dataRdd = sc.makeRDD(array)
    val df = dataRdd.toDF("name","age")

    val array2 = Array(("aa",44),
      ("bb",55),("cc",66))
    val dataRdd2 = sc.makeRDD(array2)
    val df2 = dataRdd2.toDF("zz","score")

    //第一种查询方式 使用sql方式查询数据,习惯这种.....
    df.createTempView("people")
    val df1 = spark.sql("select name,(age * 100) as AGEE from people")
    //df1.show()

    // union适用于两个表的列数相同,列名以第一个表的列名为准
    df2.union(df1).show()

    //第二种查询方式  Untyped Dataset Operations 这种还需要记一下api
//    df1.select("name").show()
//    df1.select($"name",$"age"+100).alias("a").show()
//    df1.filter($"age">23).show()
//    df1.groupBy("name").count().show()
//    df1.drop("age").show()

    //全局表  直到spark应用停止,需要用 global_temp.表名
    df.createGlobalTempView("man")
    spark.sql("select name as Name,(age + 10) as  AGE from global_temp.man").show()

    spark.newSession().sql("select name,age from global_temp.man").show()

  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值