概述
Spark SQL 的核心数据集,在RDD的基础上映射相应的字段名称,更像二维的数据表
。
创建 SparkSession 对象
val ss: SparkSession = SparkSession.builder .master("local[*]") .appName("a") .getOrCreate()
创建 DataFrame
有三种创建方式
一、通过文件方式
支持的文件类型
scala> spark.read. csv format jdbc json load option options orc parquet schema table text textFile
创建
scala> val csvdata = spark.read.csv("file:///root/sparkdata/a.csv") csvdata: org.apache.spark.sql.DataFrame = [_c0: string, _c1: string ... 1 more field] scala> csvdata.show() +---+-------+---+ |_c0| _c1|_c2| +---+-------+---+ | 1| Bob| 12| | 2| Black| 12| | 3|Bigdata| 13| +---+-------+---+
二、RDD转换
注意:如果需要RDD与DF或者DS之间操作,那么都需要引入隐式转换,特别注意引入的位置
// 构建 Spark SQL 会话 val ss: SparkSession = SparkSession.builder .master("local[*]") .appName("a") .getOrCreate() // 注意 ss 是 SparkSession 的对象 import ss.implicits._
在 SparkSession 创建 Sparkcontext 对象并创建 RDD
// 创建 SparkContext 对象,创建 RDD val sc: SparkContext = ss.sparkContext val listRDD: RDD[(Int, String)] = sc.makeRDD(List((1, "Bob"), (2, "Bigdata"), (3, "Black")))
转换 toDF(colNames: String*)
参数是映射的字段名称
val listDF: DataFrame = listRDD.toDF("id", "name") listDF.show() ------------- +---+-------+ | id| name| +---+-------+ | 1| Bob| | 2|Bigdata| | 3| Black| +---+-------+
版权声明:《 SparkSQL DataFrame 》为明妃原创文章,转载请注明出处!
最后编辑:2020-2-21 09:02:26