当前位置: 首页 > wzjs >正文

做企业网站为什么要服务器呢免费建站哪家性价比高

做企业网站为什么要服务器呢,免费建站哪家性价比高,鲜花网站建设策划方案,北京免费网站设计在 Scala 中,size 和 length 都可用于获取集合的元素数量,但它们的适用场景和设计意图不同。在 Spark 的 mapValues 示例中使用 size 而非 length,主要与集合类型的底层实现有关: 以一下代码为例,解释 // 数据转换val…

在 Scala 中,size 和 length 都可用于获取集合的元素数量,但它们的适用场景设计意图不同。在 Spark 的 mapValues 示例中使用 size 而非 length,主要与集合类型的底层实现有关:

以一下代码为例,解释

    // 数据转换val studentScoresRDD = linesRDD.map { line =>val fields = line.split(",")(fields(0), fields(2).toDouble)}.cache()// 任务1:计算总成绩val totalScores = studentScoresRDD.reduceByKey(_ + _)totalScores.saveAsTextFile(outputPath1)// 任务2:计算平均成绩val avgScores = studentScoresRDD.groupByKey().mapValues(scores => scores.sum / scores.size).cache()avgScores.saveAsTextFile(outputPath2)

1. size vs. length 的核心区别

方法适用集合类型实现特点示例
length固定长度的集合(如数组、列表)直接返回预存储的长度值,时间复杂度 O(1)Array(1,2,3).length → 3
size任意集合(包括可变长度集合)可能需要遍历集合计算,时间复杂度 O(n)Set(1,2,3).size → 3

2. 为什么 scores.size 是正确的?

在 Spark 的 groupByKey 后,scores 的类型是 Iterable[Double]

  • Iterable 是通用接口,不保证元素数量预先可知(如惰性集合、流数据)。
  • Iterable 仅定义了 size 方法,未定义 length

示例验证

val scores: Iterable[Double] = List(85.0, 90.0)  // 实际类型取决于groupByKey的实现
scores.size    // ✅ 合法(所有Iterable都有size)
// scores.length  // ❌ 编译错误:length不是Iterable的方法

3. 哪些集合用 length

  • 数组(Array)

    val arr = Array(1, 2, 3)
    arr.length  // ✅ 推荐(O(1)复杂度)
    arr.size    // ✅ 可用(但实际调用的是length)
    
  • 列表(List)

    val list = List(1, 2, 3)
    list.length  // ✅ 推荐(O(1)复杂度)
    list.size    // ✅ 可用(但实际调用的是length)
    

4. 哪些集合用 size

  • Set、Map

    val set = Set(1, 2, 3)
    set.size    // ✅ 推荐(Set未定义length)
    // set.length  // ❌ 编译错误val map = Map("a" -> 1, "b" -> 2)
    map.size    // ✅ 正确
    
  • 惰性集合(如 Stream)

    val stream = Stream.from(1).take(3)
    stream.size  // ✅ 计算元素数量(需遍历)
    

5. Spark 中 groupByKey 返回的类型

groupByKey 返回的是 RDD[(K, Iterable[V])],其中 Iterable 是通用接口,只能用 size
原因
Spark 的分布式环境中,数据可能分布在多个节点,集合的具体实现可能是:

  • 并行集合:需聚合各分区的元素数量。
  • 迭代器:元素数量需动态计算(如从外部数据源流式读取)。

6. 最佳实践建议

  1. 优先使用 size

    • 对于未知类型的集合(如通用接口 Iterable),统一用 size 避免编译错误。
  2. 根据集合类型选择

    • 若明确集合是 Array 或 List,可用 length(性能微优)。
    • 若集合类型不确定(如函数参数为 Iterable),必须用 size
  3. 性能注意事项

    • 对于某些集合(如 Stream),size 可能需要遍历整个集合(O (n)),需谨慎使用。
http://www.dtcms.com/wzjs/558402.html

相关文章:

  • 网站栅格布局景观设计公司名称
  • .电子商务网站建设的核心开一个小程序要多少钱
  • 阜新网站开发网站建设教程最新资讯
  • wordpress同步大鱼号seo推广费用需要多少
  • 中国精准扶贫网站建设现状WordPress禁止下载
  • dw网站制作模板建设银行网站支付流程
  • 天河网站建设公司排名主页网址
  • 免费建网站专业群建设专题网站
  • 青岛企业网站制作公司网站上添加图片的原则
  • 浙江杭州网站建设服务公司哪家好wordpress+添加版权
  • 网站网站的建设美食网站中饮食资讯该怎么做
  • 小程序代理商有哪些北京seo排名服务
  • 建个网站大概多少钱正规考证培训机构
  • 网站建设如何制作教程网站怎么做二维码链接地址
  • 网站怎么做footer网站网站制作开发需要哪些技术
  • 连江网站建设服务rt19 wordpress
  • wordpress 谷歌字体 360插件青岛官网优化
  • 做外贸哪个网站要办信用卡的wordpress展示页面模板下载
  • 深圳企业网站建设公司排名网站建设前置审批
  • 做网站和推广2017年做网站好难
  • 保定住房和城乡建设局网站招标信息发布
  • 网站运营与维护是什么app 网站平台建设实施方案
  • redis网站开发教程泰州企业网站建设公司
  • 如何攻克房地产网站义乌市评建设职称网站
  • 城乡建设网站证件查询系统成都旅游景点有哪些
  • 工业企业网站建设也的意义建筑公司网站设计模板
  • 茂名营销型网站制作公司照片做3d网站
  • 什么网站可以找免费模板安卓软件开发需要学什么
  • 网站功能配置福州网签
  • 迅雷黄冈网站推广软件大连html5网站建设费用