- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前在 Linux 环境中使用 Scala 编写脚本。我将其用作 Hive 中的 ETL 流程。使用 ProcessLogger 类时,我不仅可以获得 stderr。不知道为什么?这是一个问题,因为当您在 Hive 中执行查询时,标准输出非常巨大。我几乎总是内存不足。
如果我编写以下代码(类似于 Scaladoc 或 StackOverflow 中的某些示例中指定的代码),只要我的查询返回少量行,它就可以正常工作。我得到了输出和错误。
val err = new StringBuilder
val out = new StringBuilder
val logger = ProcessLogger(out append _ , err append _ )
val res = Seq("hive","-e","show tables in ab_testing") ! logger
就我而言,我只对错误感兴趣,不关心输出。它返回数百万行,但我的内存不足。在对文档或博客进行了一些挖掘之后,似乎是说如果你这样做的话。您应该只会收到错误。
val err = new StringBuilder
val logger = ProcessLogger(err append _ )
val res = Seq("hive","-e","select * from ab_testing.ab_searches") ! logger
如果查询确实失败或抛出异常,会发生什么,StringBuilder 得到错误,这是完美的,但如果查询有效,它仍然会将输出发送到StringBuilder err 这使得我的脚本内存不足。
我不确定如何处理ProcessLogger以仅获取错误,或者我是否应该对记录器使用不同的管道运算符以排除输出并仅保留错误。
我确实深入研究了 Scala Api 来尝试了解如何做到这一点,但有时我仍然对如何阅读 API 感到困惑。这是第一次在 Scala Daily 中编码。
最佳答案
这个怎么样?
val logger = ProcessLogger(_ => () , err append _ )
它丢弃来自 stdout 的所有内容,并附加来自 stderr 的内容。您稍后尝试使用单个参数的描述如下:
Creates a scala.sys.process.ProcessLogger that sends all output, standard and error, to the passed function.
这意味着它将获得所有内容:stdout 和 stderr 在一起。
关于scala - ProcessLogger,仅收集错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19169409/
我目前在 Linux 环境中使用 Scala 编写脚本。我将其用作 Hive 中的 ETL 流程。使用 ProcessLogger 类时,我不仅可以获得 stderr。不知道为什么?这是一个问题,因为
我尝试编写示例代码来结合 akka 和 actor。但是我在编译代码时收到错误消息。 代码非常简单,如下所示。 那么,我做错了什么? [error] /home/qos/workspaces/acto
我是一名优秀的程序员,十分优秀!