spark-sql的几种创建方式

Spark 1.x

//spark sql 用来处理结构化数据
类似数据库中的表一样存储数据

Spark1.x

 val sc =new SparkContext(conf)
 val sqlContext=new SQLContext(sc)
 
 //将RDD和schema信息关联到一起,
	1.RDD和case class
	2.RDD和StructType
//case class Person将RDD中的数据转换成case class 属性相对应的类型,然后设置到case class中
	3.val rdd:RDD[Person]=...
//将RDD转换成DataFrame
	4.val df =rdd.toDF
//对df进行操作(1.直接使用DataFrame上的算子DSL. 2写SQL)
//将df注册成临时表
	df.registerTempTable("t_person")
//执行SQL
val result :DataFrame=sqlContext.sql("SELECT * FROM t_person ...")
result.show()

Spark 2.x

//Spark2.x
val spark=SparkSession.builder()
	.appName("")
	.master("local[*]")
	.getOrCreat()
//创建DF
val df =spark.createDataFrame(RDD[Row],schema)
//DSL 和SQL
df.createTempView("v_user")
//执行Sql
val result :DataFrame=spark.sql("SELECT * FROM v_user")
//执行Action
result.show()


//Spark2.x
	DataSet也是一个分布式数据数据集
	
val spark=SparkSession.builder()
	.appName("")
	.master("local[*]")
	.getOrCreate()
val lines =spark.read.textFile("hdfs://...")
val words =lines.flatMap(_.split(" "))
//DSL
val df =words.groupBy($("value") as "word").agg(count("*") as "counts").sort($"counts" desc)
df.show()

猜你喜欢

转载自blog.csdn.net/LJ2415/article/details/85018535
今日推荐