sparksql的核心是df,ds;
关于rdd、df和ds的相互转化;
sparksql的数据加载与保存;
SparkSession,sparksql的新起点:
老版的SQLContext提供Spark自己提供的SQL查询;
Hive对应的是HiveContext的;
SparkSession实质上是SparkSession和HiveContext和SparkContext的两个的集合;
DF的创建:spark.read.tab键
res0.collect/reso.show
json数据工作实际用sparksql来读,不会是用sparkcore来读取文件。
spark.read.jdbc
sql风格语法
var df =spark.read.json("./examples/src/main/resources/people.json")
df.createTempView(“people”)
spark.sql(“select * from people where age > 20”)
res4.show
显示查询的结果
dsl风格语法
很少使用
不建议使用
import spark.implicits._
rdd,sparksql相互转化
最常用的
case class People(name:String ,age:Int)
rdd.map(x=>{val para = x.split(",");Peple(para(0),para(1).trim.toInt)})
res24.toDF
df.rdd实现从df到rdd的转换
dataFrame可以从sparksession中找到,也可以从dataset中找到
Dataframe实际上是DataSet中的特例。
方法都是放在dataset当中
实际运用主要是read读取文件
var ds = spark.range(10)
ds.show
rdd->ds
df->ds
先看rdd->ds
通过反射的方式来进行
df和ds强弱类型
df.map(x=>x.getString(1).show
公司中使用更多的是sql风格