【Spark】创建sparkSession&DataFrame基本操作

概述
sparkSession对象不仅为用户提供了创建dataframe对象、读取外部数据源并且转化为dataframe对象以及执行sql的api,改负担着记录用户希望spark应用如何在spark集群运行的控制调试参数,是sparksql的上下文环境,是运行的基础

1.创建sparkSession

package sparksql

import org.apache.spark.sql.SparkSession

object SparkSqltest1 {

  def main(args: Array[String]): Unit = {
    //创建sparksession
    val   sparkSession=SparkSession.builder().appName("test1").master("local[*]")getOrCreate()
    import  sparkSession.implicits._
    //读取文件形成dataframe
    val   df=sparkSession.read.json("hdfs://192.168.1.181:9000/json/data.json")
    df.show()
    sparkSession.stop()

  }
}

运行结果为:

+---+--------+
|age|    name|
+---+--------+
|  1|zhangsan|
|  2|    lisi|
+---+--------+
2. DataFrame基本操作
printScema()以树的形式打印dataframe结构信息
select()查询某一列
要也可以和select()\where()\orderBy()组合使用
import org.apache.spark.sql.SparkSession 

object SparkSqltest1 {   

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

//创建sparksession    
val sparkSession=SparkSession.builder().appName("test1").master("local[*]")getOrCreate()
import  sparkSession.implicits._    

//读取文件形成dataframe   
val   df=sparkSession.read.json("hdfs://192.168.1.181:9000/json/data.json")    

df.show()   

df.printSchema()//以树格式打印结构信息 

//    df.select("name").show() 

df.select($"name").show()   
df.select($"name",$"age"*2).orderBy($"age".asc).show()    df.groupBy($"age").count().show()    sparkSession.stop()  
}
}
输出的结果为:
+---+--------+
|age|    name|
+---+--------+
|  1|zhangsan|
|  2|    lisi|
+---+--------+

root
 |-- age: long (nullable = true)
 |-- name: string (nullable = true)



+--------+
|    name|
+--------+
|zhangsan|
|    lisi|
+--------+



+--------+---------+
|    name|(age * 2)|
+--------+---------+
|zhangsan|        2|
|    lisi|        4|
+--------+---------+



+---+-----+
|age|count|
+---+-----+
|  1|    1|
|  2|    1|
+---+-----+




你可能感兴趣的:(【--,Spark,--】)