spark2.0之后的sparkSQL
1、spark2.0以后,我们操作的sql的对象为DataSet,
DataFrame只是DataSet[Row] (row是弱类型)
DataSet有弱类型(untyped)和强类型(typed)
2、SparkSession作为新版本的上下文,可以用在sql和streaming中,
SparkSession把SQLContext和HiveContext整合到了一起
3、spark2.0之前的sql是不支持开窗函数和子查询的,2.0之后实现了sql2003标准,开始支持了
如果在2.0之前需要实现开窗函数和子查询,需要用Hive-On-Spark来实现
4、spark2.0可以支持csv格式数据的输入和输出
5、spark sql生成的默认数据格式为parquet(列式存储)
5、DataSet[Row]—DataFrame是包含RDD+schema信息(用来描述数据的数据)
6、sparksql在编程的时候,可以用DSL语言风格或SQL语句风格来操作
7、DataSet和DataFrame之间可以互相转换,用as方法
8、sparksql在获取json数据时,里面的数值数据会解析成long类型
9、sparksql是无法对数据做增删改的,只能做查询
启用hive:
1、在配置信息时加入config(“spark.sql.warehouse.dir”, “d://spark-warehouse”)
2、在getOrCreate方法之前调用enableHiveSupport()方法启动hive支持