可以使用reduceBykey来更改类型和组合值-Scala Spark吗?

2024-03-27

在下面的代码中,我尝试组合值:

val rdd: org.apache.spark.rdd.RDD[((String), Double)] =
    sc.parallelize(List(
      (("a"), 1.0),
      (("a"), 3.0),
      (("a"), 2.0)
      ))

val reduceByKey = rdd.reduceByKey((a , b) => String.valueOf(a) + String.valueOf(b))

reduceByValue应该包含 (a , 1,3,2) 但收到编译时错误:

Multiple markers at this line - type mismatch; found : String required: Double - type mismatch; found : String 
 required: Double

什么决定了reduce函数的类型?类型不能转换吗?

我可以用groupByKey达到相同的结果但只是想了解reduceByKey.


不,给定一个 rdd 类型RDD[(K,V)], reduceByKey将采用类型的关联函数(V,V) => V.

如果我们想应用减少将值的类型更改为另一种任意类型,那么我们可以使用aggregateByKey:

def aggregateByKey[U](zeroValue: U)(seqOp: (U, V) ⇒ U, combOp: (U, U) ⇒ U)

使用zeroValueseqOp函数,它在地图端提供类似折叠的操作,而关联函数combOp结合了结果seqOp到最终结果,就像reduceByKey 所做的那样。 正如我们从签名中可以看出的,虽然集合值是类型V的结果aggregateByKey将是任意类型U

应用到上面的例子中,aggregateByKey看起来像这样:

rdd.aggregateByKey("")({case (aggr , value) => aggr + String.valueOf(value)}, (aggr1, aggr2) => aggr1 + aggr2)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可以使用reduceBykey来更改类型和组合值-Scala Spark吗? 的相关文章

随机推荐

  • 如何仅在服务器调用 PHP 脚本时运行它

    我有一个 PHP 脚本 只有在服务器本身调用它时才会运行 像这样 form submit 运行 AJAX 请求来 POST 表单数据 我不想开发一个哈希解码和编码系统来证明请求是否被允许 是否可以简单地检查 服务器是否运行脚本 或客户端是否
  • 特质不就是简单的组合吗?

    我正在阅读一篇有关 PHP 5 4 0 中的新功能的文章 最值得期待的之一是Traits http php net traits 阅读这些内容Traits 看看它们的全部内容 对我来说它们只是编译器辅助的复制粘贴 一种语言提供了使用组合的方
  • D3.js V4 和 Angular 不会发生节点转换

    我在用角度打字稿 with D3 js V 4 12我特别使用整齐的径向树 https bl ocks org mbostock 4063550用于代表产品 初始步骤 随着ng cli 我安装了npm install save d3并创建了
  • SharedKeyCredential 不是构造函数。 Azure存储反应应用程序

    我正在尝试使用以下代码将 blockblob 上传到反应应用程序中的 Azure 存储 但是 我收到以下错误 类型错误 SharedKeyCredential 不是构造函数 有任何想法吗 azure 电子邮件受保护 cdn cgi l em
  • MVC 捆绑包和 IIS 虚拟目录(URL 重写)

    我在 IIS 服务器虚拟目录上托管多个应用程序 并使用 URL 重写来简化它们 所有图像和其他资产都是这样手动编写的 path to my content 有正确的输出 path to my content 但捆绑路径如 client js
  • 金钱图能很好地流动吗?

    sql 数据类型 Money 是否映射到 C float 不 它映射到decimal 如果该列允许 null 则它映射到Nullable
  • 将 ASP.NET 应用程序迁移到 IIS7 时出现注册表访问错误

    我正在运行 Windows 7 64 位和 iis7 我正在尝试在 XP 上设置一个以前在 iis6 中的 Web 应用程序 它给了我下面的错误 我已将网络服务用户添加到性能监视器用户组中 但无济于事 对注册表项 Global 的访问是 否
  • 如何通过Java Validator消息传递参数?

    目前 我有类似的东西 NotNull message err required Size min 1 message err required private String firstName In my messages properti
  • bean 验证获取验证组

    是否可以获取调用验证方法的验证器中的组 我有多个组 创建 更新 删除 它们大多数会导致对一个 bean 进行类似的验证 我不想提供多个几乎相同的验证器 并创建实用程序函数来外部化相同的验证代码 我更愿意有一个验证器来处理有关调用验证的组的验
  • graphviz 绘图太宽

    我正在做练习 在 jupyter 笔记本中使用 graphviz 创建决策树 然而 决策树过于宽泛 这是代码 from sklearn tree import export graphviz export graphviz tree out
  • 保存 .php 文件并保存包含内容(可能)

    设置 我有一个标准 php 文件 index php 其中包含两个包含内容 一个用于页眉 header php 一个用于页脚 footer php index php 文件如下所示 索引 php h2 Hello h2 p class ed
  • 检查 Windows C/C++ 中的文件夹/文件是否隐藏/系统

    我正在使用 C STL Boost 编写一个跨平台应用程序 我意识到它们没有提供一种方法来检查文件夹或文件是否隐藏或者是 Windows 中的系统文件 在 Windows 的 C C 中执行此操作的最简单方法是什么 理想情况下 我有一个带有
  • 从 python Fabric 执行远程 bash 命令时“转义”$

    所以我尝试通过 python Fabric 脚本自动设置 arch linux 实例 如下所示 from fabric api import run sudo def server setup communityrepo run echo
  • mingw 应用程序中的清单被忽略

    我有一个老式的 Windows GDI 应用程序 用 C 编写 正在使用 Mingw 工具链进行编译 我的一些用户一直在抱怨 Windows Vista 和 Windows 7 的虚拟存储 其中写入应用程序不应访问的目录的文件会被抽走并存储
  • 可以在 UIWebView 中使用 iframe 吗?

    我想在我的应用程序中添加一个类似 facebook 的按钮 在developer facebook com 中我对此无能为力 是否可以在 UIWebView 中使用 facebook 创建的 iframe 之类的按钮 它认为如果可能的话我可
  • Android Studio 模拟器不断冻结、崩溃并且根本没有响应

    我是一名 Android 开发新手 最近遇到了一些问题 我不知道这是我的硬件问题还是 Android Studio 的问题 但模拟器一直冻结或没有响应 前 2 天 Android Studio 运行良好 但是 之后它无法运行我的应用程序 我
  • 使用python 3.7创建pipenv虚拟环境时出错

    我的操作系统是 ubuntu 20 04 默认的 python 是 3 8 2 我正在尝试使用 Pipenv 和 python 3 7 创建一个虚拟环境 当我运行时出现以下错误pipenv install python 3 7 Creati
  • C++ 将时间字符串转换为纪元的秒数

    我有一个具有以下格式的字符串 2010 11 04T23 23 01Z Z 表示时间为 UTC 我宁愿将其存储为纪元时间 以便于比较 推荐的方法是什么 目前 经过快速搜索 最简单的算法是 1
  • Google App Engine 中的 Spring Boot 应用程序无法连接到 Cloud SQL

    我不确定我还缺少什么 但我的应用程序一开始就失败了 Message The connection attempt failed at org flywaydb core internal jdbc JdbcUtils openConnect
  • 可以使用reduceBykey来更改类型和组合值-Scala Spark吗?

    在下面的代码中 我尝试组合值 val rdd org apache spark rdd RDD String Double sc parallelize List a 1 0 a 3 0 a 2 0 val reduceByKey rdd