小编Joh*_*ghi的帖子

在纱线集群上使用 addFile 和管道

我已经成功地将 pyspark 与我的 YARN 集群结合使用。我正在做的工作涉及使用 RDD 的管道命令通过我制作的二进制文件发送数据。我可以在 pyspark 中轻松完成此操作,如下所示(假设“sc”已定义):

sc.addFile("./dumb_prog") 
t= sc.parallelize(range(10))
t.pipe("dumb_prog")
t.take(10) # Gives expected result
Run Code Online (Sandbox Code Playgroud)

但是,如果我在 Scala 中执行相同的操作,管道命令会收到“无法运行程序“dumb_prog”:错误=2,没有这样的文件或目录”错误。这是 Scala shell 中的代码:

sc.addFile("./dumb_prog")
val t = sc.parallelize(0 until 10)
val u = t.pipe("dumb_prog")
u.take(10)
Run Code Online (Sandbox Code Playgroud)

为什么这只能在 Python 中工作,而不能在 Scala 中工作?有什么办法可以让它在 Scala 中工作吗?

以下是来自 scala 端的完整错误消息:

[59/3965]
14/09/29 13:07:47 INFO SparkContext: Starting job: take at <console>:17
14/09/29 13:07:47 INFO DAGScheduler: Got job 3 (take at <console>:17) with 1
output partitions (allowLocal=true)
14/09/29 13:07:47 INFO DAGScheduler: Final stage: Stage 3(take at …
Run Code Online (Sandbox Code Playgroud)

scala hadoop-yarn apache-spark

5
推荐指数
1
解决办法
918
查看次数

标签 统计

apache-spark ×1

hadoop-yarn ×1

scala ×1