Scala例题

package Scala3

import scala.collection.mutable.ListBuffer

//1
case class Book(var ID:String,var bookName: String, var author: String,var price: Double,var number:Int) {

}
object timu {
  def main(args: Array[String]): Unit = {
    //2
    val BookList=ListBuffer[Book]()
    //3
    BookList+=new Book("001","西游记","吴承恩",23.4,100)
    BookList+=new Book("002","星际远航:宇宙边缘的探索者"," 林羽",69,100)
    BookList+=new Book("003","时间裂缝:错乱时空的冒险","苏晓",78,28)
    println(BookList)
    //4.添加一本书
    val book1=Book("002","星际远航:宇宙边缘的探索者"," 林羽",69,100)
//    //如果已经包含这本书,直接去修改数量
//    for(b<-BookList){
      println(b.ID)
//      if(b.ID==book1.ID){//同一本书
        println(b)
//        b.number+=book1.number
//        println(b)
//
//      }
//    }
    //查找,是否ID为book.ID的元素,找到就返回,没有找到,就返回None
    val rs=BookList.find(_.ID==book1.ID)
    println(rs)
    if(rs.isEmpty){
      println("没有")
      BookList+=book1
    }else{
      println("有")
      val s=rs.get//拿出具体的数据
      s.number+=book1.number//数量增加
    }
    //5,根据名称去查询
    var bookName="三体"
    val rs1=BookList.find(_.bookName==bookName)
    if(rs1.isEmpty){
      println(s"《$bookName》不存在")
    }else{
      println(s"《$bookName》存在")
    }

    //6.删除指定书名的书
    bookName = "三体"
    val rs2 = BookList.find(_.bookName == bookName)
    if (rs2.isEmpty) {
      println(s"《$bookName》不存在,删除失败")
    } else {
      println(s"《$bookName》存在,删除成功")
      BookList-=rs2.get
    }
    //7.删除指定ID
    var id = "三体"
    val rs3 = BookList.find(_.ID == id)
    if (rs3.isEmpty) {
      println(s"id:$id 不存在,删除失败")
    } else {
      println(s"id:$id 存在,删除成功")
      BookList -= rs3.get
    }

    //8.价格顺序
    val or=BookList.sortWith((a,b)=>a.price>b.price)
    println(or)
    //9.遍历
    BookList.foreach(el=>{
      println(s"书名:${el.bookName},作者:${el.author},价格:${el.price},数量:${el.number}")

    })
    //10.计算全部金额
    var sum:Double=0
    BookList.foreach((w=>{
      sum+=(w.number*w.price)
    }))
    println(s"总的金额是:${sum}")



    }


}
### 关于大数据 RDD 编程的示例代码题目 #### 使用 Spark 进行 RDD 编程的基础操作 在处理大规模数据集时,Resilient Distributed Datasets (RDDs) 是 Apache Spark 的核心抽象之一。下面提供了一个基于给定资料中的例子来展示如何使用 Scala 对 RDD 执行基本的操作。 ```scala // 假设已经创建好了 SparkContext sc val dataRdd = sc.textFile("path/to/datafile") // 加载文本文件到 RDD 中 // 统计特定课程选修人数 val databaseCourseCount = dataRdd.filter(line => line.split(",")(1).equals("DataBase")).count() println(s"The number of students who selected the DataBase course is $databaseCourseCount") // 计算每门课的平均分数 import org.apache.spark.rdd.RDD._ def calculateAverageScore(data: RDD[String]): Map[String, Double] = { val scoresBySubject = data.map { line => val fields = line.split(",") (fields(1), fields(2).toDouble) } val subjectScoresSumAndCount = scoresBySubject.aggregateByKey((0.0, 0))( seqOp = (acc, value) => (acc._1 + value, acc._2 + 1), combOp = (acc1, acc2) => (acc1._1 + acc2._1, acc1._2 + acc2._2) ) subjectScoresSumAndCount.mapValues{ case(sum, count) => sum / count }.collectAsMap().toMap } val averageScoresPerSubject = calculateAverageScore(dataRdd) averageScoresPerSubject.foreach { case(subject, avgScore) => println(f"Average score for ${subject}%.2f") } ``` 上述代码片段展示了两个主要功能:一是过滤并计算名为 `DataBase` 的课程被多少学生所选修;二是遍历整个数据集以求得每一科目的平均成绩[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值