前提
在老的版本1.x中,SparkSQL提供两种SQL查询起始点:一个叫SQLContext,用于Spark自己提供的SQL查询;一个叫HiveContext,用于连接Hive的查询。
SparkSession是Spark最新的2.x SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSession内部封装了sparkContext,所以计算实际上是由sparkContext完成的
创建dataFrame的几种方式
- 读json 文件:注意不能读取嵌套类型Json文件
val spark = SparkSession.builder().appName("df1").getOrCreate()
val df1: DataFrame = spark.read.json("./json")
//俩种方式读json文件
// val df1: DataFrame = spark.read.format("json").load("./json")
df1.createTempView("t1")
spark.sql("select * from t1 where age >21")
- 读parquet文件:和读json文件类似
val spark = SparkSession.builder().appName("df1").getOrCreate()
val df1: DataFrame = spark.read.parquet("./a")
- 读取mysql文件
//sparkSql入口
val spark = SparkSession.builder().master("local[*]").appName("d