Spark 在标准输出上丢失 println()

2023-12-15

我有以下代码:

val blueCount = sc.accumulator[Long](0)
val output = input.map { data =>
  for (value <- data.getValues()) {
    if (record.getEnum() == DataEnum.BLUE) {
      blueCount += 1
      println("Enum = BLUE : " + value.toString()
    }
  }
  data
}.persist(StorageLevel.MEMORY_ONLY_SER)

output.saveAsTextFile("myOutput")

然后 blueCount 不为零,但我没有 println() 输出!我在这里错过了什么吗?谢谢!


这是一个概念性问题...

想象一下,您有一个大集群,由许多工作人员组成,比方说n工作人员和这些工作人员存储一个分区RDD or DataFrame,想象你开始一个map跨该数据及其内部的任务map你有一个print声明,首先:

  • 这些数据将在哪里打印出来?
  • 什么节点有优先级,什么分区?
  • 如果所有节点并行运行,谁会先被打印?
  • 这个打印队列是如何创建的?

这些问题太多了,因此设计者/维护者apache-spark合乎逻辑地决定放弃任何支持print任何内的语句map-reduce操作(这包括accumulators乃至broadcast变量)。

这也是有道理的,因为 Spark 是一种语言designed对于非常大的数据集。虽然打印对于测试和调试很有用,但您不会希望打印 DataFrame 或 RDD 的每一行,因为它们被构建为具有数百万或数十亿行!那么,当您一开始就不想打印时,为什么要处理这些复杂的问题呢?

为了证明这一点,您可以运行以下 scala 代码:

// Let's create a simple RDD
val rdd = sc.parallelize(1 to 10000)

def printStuff(x:Int):Int = {
  println(x)
  x + 1
}

// It doesn't print anything! because of a logic design limitation!
rdd.map(printStuff)

// But you can print the RDD by doing the following:
rdd.take(10).foreach(println)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark 在标准输出上丢失 println() 的相关文章

  • 了解 mesos 上 Spark 作业的资源分配

    我正在 Spark 中开发一个项目 最近从使用 Spark Standalone 切换到使用 Mesos 进行集群管理 我现在发现自己对新系统下提交作业时如何分配资源感到困惑 在独立模式下 我使用了类似的东西 遵循一些建议这篇 Cloude
  • 如何在 Scala 中将文件读取为字节数组

    我可以找到大量示例 但它们似乎要么主要依赖于 Java 库 要么只是读取字符 行 等 我只想读入一些文件并获取带有 scala 库的字节数组 有人可以帮助我吗 Java 7 import java nio file Files Paths
  • 在 Windows 上安装 Apache Spark

    我需要安装阿帕奇火花 http spark apache org 在 Windows 机器上 根据文档 我应该在我的机器上安装 sbt 并覆盖其默认选项以使用最大 2G RAM 经过多次尝试后 我决定选择 maven 我覆盖了默认选项以使用
  • 如何从 Scala Iterable 中获取不同的项目,保持惰性

    我有一个java lang Iterable它惰性地计算它的值 我从 Scala 访问它 是否有一种只返回不同值的核心 API 方法 例如 想象有一个过滤器方法 它还提供了迄今为止返回的所有结果 val myLazyDistinctIter
  • scala 数值求和列表

    我想要一个通用函数来对列表中的值求和 以下代码无法编译 def sum T Numeric x List T T if x isEmpty 0 else x head sum x tail 编译错误是 error type mismatch
  • 在 pyspark 中实现递归算法以查找数据帧中的配对

    我有一个火花数据框 prof student df 列出了时间戳的学生 教授对 每个时间戳有 4 位教授和 4 位学生 每个教授 学生对都有一个 分数 因此每个时间范围有 16 行 对于每个时间范围 我需要找到教授 学生之间的一对一配对 以
  • 睡觉的演员?

    让演员睡觉的最佳方式是什么 我将参与者设置为代理 希望维护数据库的不同部分 包括从外部源获取数据 由于多种原因 包括不使数据库或通信过载以及一般负载问题 我希望参与者在每个操作之间休眠 我正在看大约 10 个演员对象 参与者将几乎无限地运行
  • 左反加入Spark?

    我定义了两个表 如下所示 val tableName table1 val tableName2 table2 val format new SimpleDateFormat yyyy MM dd val data List List mi
  • 我可以在 Scala 中生成或映射一个元素到多个元素吗?

    val inArray Array a b c d val outArray Array a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3 如何绘制地图inArray to outArray 这个想法是迭代inArra
  • Pyspark 将多个列合并为一个 json 列

    我不久前问过 python 的问题 但现在我需要在 PySpark 中做同样的事情 我有一个像这样的数据框 df cust id address store id email sales channel category 1234567 1
  • Scala:具有可重用条件的模式匹配

    考虑这种模式匹配的情况 foo match case x if expensiveCalculation x nonEmpty gt do something with expensiveCalculation x 是否可以 标记 或重复使
  • 找出分区号/id

    Spark中有没有一种方法 方法 可以找出分区ID 编号 在这里举这个例子 val input1 sc parallelize List 8 9 10 3 val res input1 reduce x y gt println Insid
  • Spark DataFrame 删除重复项并保留第一个

    问题 在 pandas 中 当删除重复项时 您可以指定要保留哪些列 Spark Dataframes 中有等效的吗 Pandas df sort values actual datetime ascending False drop dup
  • 为什么 format("kafka") 失败并显示“无法找到数据源:kafka”。 (即使使用 uber-jar)?

    我使用 HDP 2 6 3 0 和 Spark2 包 2 2 0 我正在尝试使用结构化流 API 编写 Kafka 消费者 但将作业提交到集群后出现以下错误 Exception in thread main java lang ClassN
  • Spark Mongo 连接器,MongoShardedPartitioner 不起作用

    出于测试目的 我配置了一个 4 节点集群 每个节点都有一个 Spark Worker 和一个 MongoDB Shard 这些是详细信息 四台 Debian 9 服务器 名为 Visa0 Visa 1 Visa 2 Visa 4 个节点上的
  • 如何解析 Spray-routing 中的 get 请求参数?

    这就是代码部分的样子 get respondWithMediaType MediaTypes application json entity as HttpRequest obj gt complete println obj ok 我可以
  • Spark parquet 分区:大量文件

    我正在尝试利用 Spark 分区 我试图做类似的事情 data write partitionBy key parquet location 这里的问题是每个分区都会创建大量镶木地板文件 如果我尝试从根目录读取 则会导致读取速度变慢 为了避
  • sbt 程序集中的合并策略和缺少的应用程序加载器

    我正在开发一个 Play Web 应用程序 我希望能够使用 sbt 程序集将其部署为 fat jar 在调试中运行应用程序时 我可以识别 guice 库 因为它已添加到我的 build sbt 文件中 libraryDependencies
  • 获取 Spark 中组的最后一个值

    我有一个 SparkR DataFrame 如下所示 Create R data frame custId lt c rep 1001 5 rep 1002 3 1003 date lt c 2013 08 01 2014 01 01 20
  • 如何在play 2.0模板中格式化数字/日期?

    我在使用 play 2 0 模板系统时遇到了一些困难 我有一个方法返回 scala 中的 Int 我想使用模式 对其进行格式化 我努力了 order itemCount format and order item count format

随机推荐

  • Angular2:将表单上下文绑定到 ngTemplateOutlet

    我试图定义一个包含动态表单 使用 ReactiveForms 的组件 用户应该能够在其中添加 删除控件 控件可以采用多种形式 并且必须在组件外部定义 因此我认为 TemplateRef 最适合这种情况 我正在努力寻找一种通过使用 formC
  • XSL 与区域化/国际化数字格式

    在格式化数字时 XSL 中是否内置了任何区域化支持 目前 我的底层 XML 包含英国 美国格式的数字 例如 54321 12345 我可以对此进行选择总和 以相同的格式给出总计 我可以使用 format number 54321 12345
  • Lattice中的facet_wrap相当于什么

    假设我们有一些这样的数据 dta lt data frame group rep letters 1 8 each 1000 x runif 8000 y runif 8000 我想为每个组生成一个包含 y x 的格子图 但是 第一行有 a
  • 左外连接等效

    我有一个包含空值的表 在 ORDER 表中 PART ID 部分有 2 个空值 CUSTOMER ID 部分有 2 个空值 我有这样的疑问 SELECT O ORDER ID O ORDER DATE O CUST ID O QUANTIT
  • 将图形直接放入 Knit 文档中(不将其文件保存在文件夹中)

    我正在 RStudio 中创建一个名为 test Rnw 的文档 其 MWE 如下 documentclass 12pt english nohyper tufte handout usepackage tabularx usepackag
  • 逗号运算符的正确用法是什么?

    我看到了这段代码 if cond perror an error occurred exit 1 为什么要这么做 为什么不只是 if cond perror an error occurred exit 1 在你的例子中 它根本没有任何理由
  • Coq 将不存在的语句转换为 forall 语句

    我是 Coq 的新手 这是我的问题 我有一个声明说 H forall x term exists y term P x y P y x 我猜它相当于 forall x y term P x y P y x gt false 但我可以使用哪种
  • 浮点数转换恐怖,有出路吗?

    背景 最近 我的同事向我们的测试项目添加了一些新测试 其中之一还没有传递或持续集成系统 由于我们有大约 800 个测试 并且需要一个小时才能运行所有测试 因此我们经常会犯错误 并且只在我们的开发机器上运行我们当前已实现的测试 这种方法有其弱
  • 如何从不返回简单 HTML 的网站抓取数据

    我一直在使用 requests 和 BeautifulSoup for python 从基本网站中抓取 html 但大多数现代网站不仅仅提供 html 结果 我相信他们运行 javascript 或其他东西 我不是很熟悉 这里有点菜鸟 我想
  • spring boot hibernate查询无效用户错误

    嗨 我是 Spring Boot 的新手 我尝试连接到 Oracle 并列出相关记录 我的代码在存根环境中运行 即没有连接到数据库 当我尝试从 Spring 连接到数据库时 出现编辑 2 中给出的错误 家庭控制器 package blog
  • 转换数据类型为 Option Strict

    我只是想知道如何正确 将字符串转换为日期 将整数转换为短整型 将字符串转换为整数 将字符串转换为双精度 正确地不使用任何类型 我打开了 Option Strict 现在所有这些错误都弹出了 所以我正在尝试修复它们 NET 提供了多种检查 测
  • 在另一个函数中使用一个函数的返回结果[重复]

    这个问题在这里已经有答案了 我知道这有几个问题 我读过但我无法理解 我试图在另一个函数中使用一个函数的返回结果 def multiplication a c a a return c def subtraction c d c 2 retu
  • 如何包含 pandas date_range() 的两端

    我想从一对日期创建一个按月频率的日期列表 包括两个日期所指示的月份 import pandas as pd import datetime Option 1 pd date range datetime 2022 1 13 datetime
  • 如何设置面板的透明不透明度

    我如何将面板设置为透明 如不透明度为0 我通过程序设置面板 它位于视频播放器的顶部 代码是这样的 Private Sub Button1 Click sender As Object e As EventArgs Handles Butto
  • 为什么我们要在 PyTorch 中“打包”序列?

    我试图复制如何对 rnn 的可变长度序列输入使用打包但我想我首先需要理解为什么我们需要 打包 序列 我明白为什么我们 填充 它们 但为什么 打包 通过pack padded sequence 必要的 我也偶然发现了这个问题 下面是我的发现
  • Bert 针对语义相似性进行了微调

    我想应用微调 Bert 来计算句子之间的语义相似度 我搜索了很多网站 但几乎没有找到有关此的下游信息 我刚刚发现STS基准测试 我想知道是否可以使用STS基准数据集来训练微调bert模型 并将其应用到我的任务中 合理吗 据我所知 计算相似度
  • ffmpeg/PHP - 将任何视频格式转换为 ogg 时出现问题 - 视频断断续续/无音频 - win64

    如果这是一个重新发布 类似的帖子 首先让我道歉 因为我尽了最大努力在此处和谷歌上已创建的帖子中搜索我的问题的具体解决方案 但无法 我在 win64 系统的本地主机上使用 ffmpeg 创建 测试视频转换脚本 然后将它们上传到服务器 我能够成
  • NoSuchElementException:消息:尝试通过 Selenium 和 Python 单击按钮 VISA 时无法定位元素

    我无法点击此按钮在我的机器人上创建结账 我想点击图片进入另一页
  • 如何用opencv获得所有不失真的图像

    我在用着cv undistort但它会裁剪图像 我想要所有未失真的图像 以便未失真的尺寸比原始图像更大 如下所示 我想我需要使用cv getOptimalNewCameraMatrix但我的试验没有运气 有什么帮助吗 仅供记录 你应该使用c
  • Spark 在标准输出上丢失 println()

    我有以下代码 val blueCount sc accumulator Long 0 val output input map data gt for value lt data getValues if record getEnum Da