Spark 2.x管理与开发-Spark SQL-【在IDEA中开发Spark SQL程序】(一)指定Schema格式
Posted on 2020-07-28 19:21 MissRong 阅读(237) 评论(0) 收藏 举报Spark 2.x管理与开发-Spark SQL-【在IDEA中开发Spark SQL程序】(一)指定Schema格式
准备的数据:

Scala代码:
package sqlExamples
/**
* 创建DataFrame(一)
* 通过:使用StructType的方式
*/
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.types.StructField
import org.apache.spark.sql.types.StringType
import org.apache.spark.sql.types.IntegerType
import org.apache.spark.sql.types.StructType
import org.apache.spark.sql.Row
object Read {
def main(args: Array[String]): Unit = {
//1.首先,使用SparkSession来创建Spark的运行环境
val spark = SparkSession.builder().master("local").appName("UnderstandSparkSession").getOrCreate()
//2.从指定地址创建RDD
val personRDD = spark.sparkContext.textFile("D:/student.txt").map(_.split("\t"))
//3.通过StructType声明Schema
val schema = StructType(
List(
StructField("id", IntegerType),
StructField("name", StringType),
StructField("age", IntegerType)))
//4.将RDD映射到rowRDD
val rowRDD = personRDD.map(p => Row(p(0).toInt, p(1), p(2).toInt))
//5.生成DataFrame
val personDF=spark.createDataFrame(rowRDD, schema)
//6.注册视图
personDF.createOrReplaceTempView("tablePerson")
//7.执行的SQL语句:按年龄排序,取前4个
val df=spark.sql("select * from tablePerson order by age limit 4")
//触发计算
df.show()
//8.停掉Spark
spark.stop()
}
}
结果:

浙公网安备 33010602011771号