《Spark编程基础及项目实践》课后习题及答案.docxVIP

《Spark编程基础及项目实践》课后习题及答案.docx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实训代码 完整程序如下: 文件 studentinfo.txt 存为 UTF-8 的格式。 第二章 习题答案 的内容如图 1 所示,注意在 Windows 平台下将 studentinfo.txt 保 图 1 学生信息 在 Linux 的/usr/local/project 目录下创建文件 studentinfo.txt,使用命令“touch studentinfo.txt”。执行命令“vim studentinfo.txt”对文件进行编辑,按“i”进入编辑 模式,输入图 2-40 所示内容,按“Esc”退出编辑状态,再执行命令“:wq”进行保存并退 出。 在/usr/local/project 目录下创建文件 StudentInfo.scala,输入内容如下: import scala . io ._ import util .control .Breaks ._ object StudentInfo { var arrInfo:Array[String] = null def main(args: Array[String]) { //将/usr/local/project/studentinfo .txt 的文件内容读入到数组中 //一行为一个元素 val lines = for(line - Source . fromFile(/usr/local/project/studentinfo .txt) .getLines) yield line arrInfo = lines .toArray var flag = true show() while(flag){ print(请输入选择序号: ) val choice = StdIn .readLine() breakable{ if(!isIntByRegex(choice)) { //如果输入不是数字,则跳出本次循环 println(请输入正确的序号) break } choice .toInt match { case 1 = { var maleCnt = count(男) println(三个班级共有男生 + maleCnt +人) } case 2 = { var femalCnt = count(女) println(三个班级共有女生 + femalCnt +人) } case 3 = { print(输入学号: ) val studentId = StdIn .readLine() var mark = false breakable{ for(i - 0 until arrInfo .length){ var info = arrInfo(i) val arr : Array[String] = info .split(\t) if(arr(1)== studentId){ mark = true println(班级\t 学号\t 姓名\t 性别\t 年龄\t 籍贯\t 电话) println(info) break //找到了学号,就跳出breakable,终止循环 } } } if(!mark){ println(查无此人 ) } } case 4 = { //按班级进行分组 print(输入班级序号: ) val classId = StdIn .readLine() println(班级\t 学号\t 姓名\t 性别\t 年龄\t 籍贯\t 电话) /** * 将 arrInfo 数组使用 groupBy 函数按照班级序号进行分组 * 先将数组中的每个元素按照\t进行分割 * 提取出分割后的第一个元素(即班级序号) * 按照班级序号进行分组,返回一个 Map[String,Array[String]]类型 * 将返回值赋值给 mapArr */ val mapArr = arrInfo .groupBy(x = x .split(\t)(0)) for(maparr - mapArr(classId)) println(maparr) } case 5 = { flag = false println(再见! ) } case _ = println(输入错误,请重新输入) } } } } //使用正则表达式判断字符串 s 是否为数字 def isIntByRegex(s : String) = { val pattern = ^(\d+)

文档评论(0)

***** + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体玉泉区阿烽网络科技开发部
IP属地广西
统一社会信用代码/组织机构代码
92150104MAC7MD094G

1亿VIP精品文档

相关文档