spark写sql语句范例

//创建一个sparkSession对象
val sparkSession = SparkSession.builder()
  .appName("createDF2")
  .master("local")
  .getOrCreate()
val rdd = sparkSession.sparkContext.textFile("c://data/person.txt")
//整理数据,ROW类型
val rowrdd = rdd.map(line=>{
  val fields = line.split(",")
  val id = fields(0).toLong
  val name = fields(1)
  val age = fields(2).toInt
  val facevalue = fields(3).toDouble
  Row(id,name,age,facevalue)
})

//scheme:定义DataFrame里面元素的数据类型,以及对每个元素的约束
val structType = StructType(List(
  StructField("id",LongType,true),
  StructField("name",StringType,true),
  StructField("age",IntegerType,true),
  StructField("facevalue",DoubleType,true)
))
//将rowrdd和structType关联
val df:DataFrame = sparkSession.createDataFrame(rowrdd,structType)
//创建一个视图
df.createOrReplaceTempView("Tperson")
//基于注册的视图写SQL
val res:DataFrame = sparkSession.sql("SELECT name,age FROM Tperson ORDER BY age asc")

res.show()

sparkSession.stop()
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值