首页
学习
活动
专区
圈层
工具
发布

2021年大数据常用语言Scala(十八):基础语法学习 Map对象

---- Map对象 Map可以称之为映射。它是由键值对组成的集合。在scala中,Map也分为不可变Map和可变Map。...示例 定义一个映射,包含以下学生姓名和年龄数据 "zhangsan", 30 "lisi", 40 获取zhangsan的年龄 参考代码 scala> val map = Map("zhangsan"-...(zhangsan -> 30, lisi -> 30) // 根据key获取value scala> map("zhangsan") res10: Int = 30 可变Map 定义 定义语法与不可变...但定义可变Map需要手动导入import scala.collection.mutable.Map 示例 定义一个映射,包含以下学生姓名和年龄数据 "zhangsan", 30 "lisi", 40 修改...key)) 获取所有key(map.keys) 获取所有value(map.values) 遍历map集合 getOrElse 增加key,value对 删除key 示例 定义一个映射,包含以下学生姓名和年龄数据

64240

Scala 集合与函数式编程

Scala提供了一套功能极其丰富、设计优雅的集合库,并鼓励使用高阶函数来声明式地处理数据,这不仅使代码更简洁、易读,也是编写高性能分布式计算任务(如Spark)的核心思想思维导图一、数组概述:数组是一种容器...d",0))//getOrElse提供默认值:0println(map1.keys)//获取所有键println(map1.values)//获取所有值b.可变映射(mutable.Map):展开代码语言...flatMaplist.flatMap(x=>List(x,x+1))结合了map和flatten,先映射成集合,再压平。...题目八:可变映射创建一个可变映射,初始为空。然后,向其中添加键值对"apple"->5,并更新"apple"的值为10。...请编写一行代码,使用groupBy,map,sum来计算每个键(如"a","b")对应的所有值的总和。

7410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    大数据【企业级360°全方位用户画像】匹配型标签开发

    经过了用户画像,标签系统的介绍,又经过了业务数据调研与ETL处理之后,本篇博客,我们终于可以迎来【企业级用户画像】之标签开发。 ?...■ 挖掘型:需要通过多个维度利用一定的算法才能得到的标签 如果是匹配和统计型标签,我们只需要从数据库中将对应的业务数据查询出来,分析即可。...//引入隐式转换 import spark.implicits._ //引入java 和scala相互转换 import scala.collection.JavaConverters...// 6 标签匹配 // 根据五级标签数据和hbase数据进行标签匹配 得到最终的标签 // 编写udf函数 例如输入是1,2 返回不同性别对应的id值5或者6 val...DataFrame = spark.read.jdbc(url,table,properties) //引入隐式转换 import spark.implicits._ //引入java 和scala

    1.4K30

    大数据技术之_16_Scala学习_07_数据结构(上)-集合

    中的 Map 介绍   Scala 中的 Map 和 Java 类似,也是一个散列表,它存储的内容也是键值对(key-value)映射,Scala 中不可变的 Map 是有序的,可变的 Map 是无序的...方式3-创建空的映射   val map3 = new scala.collection.mutable.HashMap[String, Int] 方式4-对偶元组   即创建包含键值对的二元组,和第一种方式等价...方式4-使用 map4.getOrElse() 取值   底层是:def getOrElse[V1 >: V](key: K, default: => V1)   1、如果key存在,返回key对应的值...如果只是简单的希望得到一个值,使用 map4.getOrElse("ip", "127.0.0.1") 10.10.4 可变 Map 的修改、添加和删除 说明:   map 是可变的,才能修改,否则报错...中的 Set 介绍 集是不重复元素的结合。

    1.5K10

    Play For Scala 开发指南 - 第3章 常用类介绍

    3.2 Option Scala用Option类型表示一个值是否存在,用来避免Java的NullPointerException。它有两个子类:Some和None。...",否则返回opt持有的值 opt.getOrElse("default") //如果为None则返回"DEFAULT",否则将字符转为大写 opt.fold("DEFAULT"){ value =>....getOrElse(0) // 2 //过滤 list.filter(_ % 2 == 1) // List(1, 3) //排序 list.sorted // List(1, 2, 3) //最小值...如果要使用可变集合,请使用scala.collection.mutable包下相应的类。不可变类型在编写并发代码时很有用。...第1行import语句导入了一个隐式的ExecutionContext,你可以把它理解成是一个线程池,Future类在需要时会自动使用其上的线程。在Scala中你不需要直接和线程打交道。

    1.1K50

    Scala 学习笔记之Map与Tuple

    [String,Int] = Map() 从上面我们可以知道使用->操作符来创建映射的键值对元素 "Alice" -> 90 我们也可以使用下面的方式定义映射: scala> val scores...获取映射中的值 可以使用()来查找某个键对应的值: scala> val bobscores = scores("Bob") bobscores: Int = 98 如果映射中并不包含对应键的值,则会抛出异常...("Tom")) scores("Tom") else 0 tomScores: Int = 0 以下是一个快捷写法: scala> val tomScores = scores.getOrElse(...更新映射中的值 在可变映射中,可以更新某个映射的值,也可以添加一个新的键值对: scala> val scores = scala.collection.mutable.Map("Alice" ->...与Java互操作 如果你有一个Java映射,想要转换为Scala映射,以便便捷的使用Scala映射的方法,只需要增加如下语句: import scala.collection.JavaConversions.mapAsScalaMap

    84630

    Scala异步任务编排与弹性容错机制

    本示例展示Scala在高并发爬虫领域的核心优势:通过Future实现异步任务编排,结合智能路由策略自动切换静态解析(Jsoup)与动态渲染(Selenium)。...代码采用函数式管道设计,从URL调度、反爬防护到数据清洗一气呵成,完美融合声明式编程与生产级稳定性。...特别针对动态页面处理痛点,引入无头浏览器与随机延迟机制,为电商监控、舆情分析等场景提供工业级解决方案。...以下是一个展示 Scala 爬虫技术优势的完整示例代码,结合了异步并发处理、函数式数据处理和动态页面渲染三大核心优势:import scala.concurrent....在爬虫领域的核心优势:高性能并发、智能策略路由、声明式数据处理和生产级稳定性,特别适合需要处理复杂动态页面和大规模数据采集的场景。

    20010

    scala快速入门系列【映射】

    本篇作为scala快速入门系列的第十五篇博客,为大家带来的是关于映射的相关内容。 ? 映射 Map可以称之为映射。它是由键值对组成的集合。...在scala中,Map也分为不可变Map和可变Map。 ---- 不可变Map 定义语法 ? 示例 定义一个映射,包含以下学生姓名和年龄数据 ?...---- 可变Map 定义语法与不可变Map一致 可变Map需要手动导入 import scala.collection.mutable.Map 示例 定义一个映射,包含以下学生姓名和年龄数据...示例 1.定义一个映射,包含以下学生姓名和年龄数据 ?...可以使用while或者for来逐个返回元素 示例 定义一个列表,包含以下元素:1,2,3,4,5 使用while循环和迭代器,遍历打印该列表 参考代码 ?

    51820

    大数据分析工程师面试集锦2-Scala

    1 开发需要 最简单和重要的理由是开发需要,大数据分析工程师是需要掌握大数据相关组件的,而很多大数据组件是由Scala开发的-如Spark和Kafka,所以相关的开发,Scala就成为了首选开发语言...List列表:以线性方式存储,集合中可以存放重复对象; Set集合:集合中的对象不按特定的方式排序,并且没有重复对象; Map映射:是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象...2)import collection.JavaConversions._ 这里引入的是scala与java集合的隐式转换,就不需要特意进行asJava和asScala的转换,直接使用Java或者Scala...当调用该函数或方法时,如果没有传该参数的值,Scala会尝试在变量作用域中找到一个与指定类型相匹配的使用implicit修饰的对象,即隐式值,注入到函数参数中函数体使用。...,返回整型集合, 其值为能和集合中某个字符串相对应的映射的值。

    2.7K20

    泛函编程(9)-异常处理-Option

    所以Option的数据操作与List很相似。不同的是Option的管子内最多只能存放一个元素,在这个方面Option的数据操作就比List简单的多,因为使用者不必理会数据元素的位置、顺序。...和List的两种状态:Nil及Cons很是相似。值得注意的是,这个为空的概念与java的null值有根本的区别:None或Nil值都具有明确的类型而null则可能是任何类型的数据。...不过使用者必须从Option这个管子里先把值取出来,看起来好像又多了一道手续。实际上这就是OOP和泛函编程概念之间的区别:泛函编程的风格就是在一些管子里进行数据读取,没有必要先取出来。...普及使用Option变成了泛函编程的重要风格。Scala是一种JVM编程语言,因而在用Scala编程时可能会调用大量的java库函数。...我们需不需要在使用java函数时用null和Exception而在Scala中就用Option呢?答案是否定的!

    96860
    领券