package com.qf.bigdata.scala.day02
object Demo1 {
/**
*
* @param datas
*/
def sqlFun(datas: Array[(String, Int, String)]): Unit = {
val sql =
s"""
|select
| nation,
| name,
| score
|from datas(name,score,nation)
|where
| score > 60
|order by
| score desc
|""".stripMargin
}
def main(args: Array[String]): Unit = {
val datas: Array[(String, Int, String)] = Array[(String, Int, String)](
("p1", 10, "CN"),
("p2", 100, "USA"),
("p3", 85, "JPA"),
("p4", 65, "RUA"),
("p5", 95, "USA"),
("p6", 50, "CN"),
("p7", 90, "CN")
)
//val fi: Array[(String, Int, String)]=>Array[(String, Int)] = {
//1.
//val fi: Array[(String, Int)] =
//{
// val datt = for(elem <- datas if (elem._2>60)) yield (elem._3,elem._2)
// val dattt=datt.sortWith(
// (a:(String,Int),b:(String,Int)) => { a._2 < b._2}
// )
// dattt
//}
val fi1: Array[(String, Int, String)] => Array[(String, Int, String)] =
(datas: Array[(String, Int, String)]) => {
val datt = for (elem <- datas if (elem._2 > 60)) yield (elem._3, elem._2, elem._1)
val dattt = datt.sortWith(
(a: (String, Int, String), b: (String, Int, String)) => {
a._2 > b._2
}
)
println(dattt.mkString(","))
dattt
}
val fi2: Array[(String, Int, String)] => Array[(String, Int)] =
(datas: Array[(String, Int, String)]) => {
val datt: Array[(String, Int)] = datas.map(
(info: (String, Int, String)) => {
(info._3, info._2)
}
)
val dattt = datt.sortWith(
(a: (String, Int), b: (String, Int)) => {
a._2 > b._2
}
)
println(dattt.mkString(","))
dattt
}
val aa = fi1(datas)
println(s"使用for_each和if判断yield过滤${bb.mkString(",")}")
val bb = fi2(datas)
println(s"使用map过滤${bb.mkString(",")}")
}
}
sql 语句转scala代码简单demo
最新推荐文章于 2024-05-13 18:49:56 发布