spark sql初探【实战】

一、数据集

1 张三 26
2 李四 31
3 王五 22
4 赵柳 19
5 James 35

二、代码

object SparkSqlDemo {
  def main(args: Array[String]): Unit = {
    //配置参数
    val conf = new SparkConf().setMaster("local[*]").setAppName("sparkSql")
    val sc = new SparkContext(conf)
    val session = SparkSession.builder().config(conf).getOrCreate()

    //读取文件
    val lines = sc.textFile("hdfs://192.168.xx.xx:9000/test/user.txt")

    //处理数据
    val row = lines.map(line => {
      val strings = line.split(" ")
      val id = strings(0).toInt
      val name = strings(1)
      val age = strings(2).toInt

      Row(id, name, age)
    })

    //表头
    val sch = StructType(List(StructField("id",IntegerType,true),StructField("name",StringType,false),StructField("age",IntegerType,false)))

    //组装
    val frame = session.createDataFrame(row,sch)
    frame.createOrReplaceTempView("table01")
    session.sql("select sum(age) from table01").show()

    sc.stop()
  }
}
+--------+
|sum(age)|
+--------+
|     133|
+--------+

说明:

1、spark本地运行有3种模式:通过setMaster()配置

(1)local 模式:本地单线程运行;

(2)local[k]模式:本地K个线程运行;

(3)local[*]模式:用本地尽可能多的线程运行。

2、spark程序从sparkContext开始,需要实例化,并配置好参数conf:

(1)setMaster():设置程序运行模式

(2)setAppName():为该spark程序设置一个名称

3、sparkSession

SparkSession是spark sql的入口,需要创建SparkSession对象:

build()是SparkSession的构造器,提供过这个构造器可以添加各种配置:

Method Description
getOrCreate 获取或者新建一个 sparkSession
enableHiveSupport 增加支持 hive Support
appName 设置 application 的名字
config 设置各种配置

4、创建DataFrame

通过createDataFrame()来创建dataframe

猜你喜欢

转载自blog.csdn.net/BD_fuhong/article/details/93194291