Ideal中创建SparkSql程序

1.添加依赖

在pom.xml中添加spark-sql的引用。

 <dependency>
     <groupId>org.apache.spark</groupId>
     <artifactId>spark-sql_2.11</artifactId>
     <version>2.1.1</version>
</dependency>

2.demo1-用法

读取一个json字符串,然后把结果显示出来。

通过三种方式显示

  1. 直接全部显示
  2. 通过视图的方式显示
  3. 能过HQL查询的方式显示

def main(args: Array[String]): Unit = {

    //创建spark并设置app名称
    val conf: SparkConf = new SparkConf().setAppName("SparkCoreTest").setMaster("local[*]")
    // 创建sparksql 执行的入口点函数
    val spark: SparkSession = SparkSession.builder().config(conf).getOrCreate()
    val df: DataFrame = spark.read.json("D:\\code\\demo\\spark\\input\\people.json")
//    df.show() //直接显示
     // 创建视图查询
//    df.createOrReplaceTempView("people") 
//    spark.sql("select * from people ").show();

    //hql查询
    df.select("name","age").show()
   //关闭连接

3.demo2-求平均年龄

以json做为数据源,读取以后创建视频,利用系统自带的方法求出平均年龄

自带的函数avg使用很方便 ,如果没有自带的系统函数的话,要自定义实现函数

//输入
{"name":"liming","age":11}
{"name":"LiLei","age":21}
{"name":"Tom","age":31}

  def main(args: Array[String]): Unit = {
    //创建spark并设置app名称
    val conf: SparkConf = new SparkConf().setAppName("SparkCoreTest").setMaster("local[*]")
    val spark: SparkSession = SparkSession.builder().config(conf).getOrCreate()
    val df: DataFrame = spark.read.json("D:\\code\\demo\\spark\\input\\people.json")
    df.createOrReplaceTempView("people")
    spark.sql("select avg(age) from people").show()
  }

//output

+--------+
|avg(age)|
+--------+
|    21.0|
+--------+

自定义函数 后续。。。。


本文由 hcb 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论