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字符串,然后把结果显示出来。
通过三种方式显示
- 直接全部显示
- 通过视图的方式显示
- 能过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|
+--------+
自定义函数 后续。。。。
还不快抢沙发