一.创建Spark入口
相较于Spark1.x,Spark2.x最明显的区别就是程序执行入口的区别了,从SparkContext变为SparkSession。相较于SparkContext,SparkSession对SparkContext进行了二次封装,把原有Spark1.x中的SQLContext和HiveContext进行了合并,默认为SQLContext,当需要访问Hive时,只需开启对Hive的支持即可【.enableHiveSupport(),当然hive的相关配置还是要设置的】,如下:
val spark = SparkSession
.builder
.appName(s"${this.getClass.getSimpleName}")
.master("local[2]")
.getOrCreate()
二.创建DataFrame数据集
在Spark2.x中,获取数据集的方式和Spark1.x非常类似,只需从结构化数据源直接加载或从非结构化数据源转换即可,如下:
// 数据集直接的转换
import spark.implicits._
val technology = spark.sparkContext
.textFile("D:\\software\\spark-2.4.4\\data\\sql\\dataframe.txt")
.map(_.split(","))
.map(row => Technology(row(0), row