我有一个Spark RDD,其中每个元素都是(key,输入)
形式的元组。我想使用管道
方法将输入传递给外部可执行文件并生成(key,输出)
形式的新RDD。我稍后需要键进行关联。
下面是使用火花壳的示例:
val data = sc.parallelize(
Seq(
("file1", "one"),
("file2", "two two"),
("file3", "three three three")))
// Incorrectly processes the data (calls toString() on each tuple)
data.pipe("wc")
// Loses the keys, generates extraneous results
data.map( elem => elem._2 ).pipe("wc")
提前谢谢。
考虑到您无法将标签传入/传出可执行文件,这可能行得通:
rdd
.map(x => x._1)
.zip(rdd
.map(x => x._2)
.pipe("my executable"))
请注意,这可能是脆弱的,如果您的可执行文件没有在每个输入记录上生成恰好一行,则肯定会中断。
使用map的解决方案是不正确的,因为map不能保证保留分区,因此在之后使用zip将失败。您需要使用mapValue来保留初始RDD的分区。
data.zip(
data.mapValues{ _.toString }.pipe("my_executable")
).map { case ((key, input), output) =>
(key, output)
}
我有一个管道可以解析AVRO文件中的记录。 我需要将传入的记录分成500个项目的块,以便调用一个同时接受多个输入的API。 有没有办法用PythonSDK做到这一点?
使装饰器包含具有name属性的管道元数据。 此值将用于在模板表达式中调用此管道。 它必须是有效的JavaScript标识符。 实现PipeTransform接口的transform方法。 此方法接受管道的值和任何类型的可变数量的参数,并返回一个变换的(“管道”)值。 import { Component } from '@angular/core'; selector: 'app-root',
问题内容: 我试图让bash处理来自管道的stdin的数据,但是没有运气。我的意思是以下任何一项工作: 我希望输出在哪里。我试过用“”引号括住也不起作用。 问题答案: 采用 您 可以像这样欺骗从管道中接受: 甚至编写这样的函数: 但是没有意义-您的变量分配可能不会持续!管道可能会产生一个子外壳,其中环境是通过值而不是通过引用继承的。这就是为什么不打扰管道输入的原因- 它是未定义的。 仅供参考,ht
错误: 棱角版本:
该父级接收“props.id”并将数据值传递给由getAttributes()返回的子级。 在child上,我可以在控制台和componentWillReceiveProps中看到props值,但数组没有呈现。我尝试使用react-devtool。在react-devtool中,道具似乎传递给了孩子,但不是渲染。有趣的是,在react-devtool中,当我改变数组的一些元素时,数组正在呈现。 我
但是,如果首先获取jenkinsfile时出现问题,则作业将以静默方式失败。如何在管道启动之前就从一般的作业启动失败中生成通知?