小编Ale*_*rev的帖子

Scala中的ArrayBuffer与ArrayBuilder

scala.collections.mutable.ArrayBuilder和scala.collections.mutable.ArrayBuffer有什么区别?例如,如果我需要构建一个可以使用的Array [Int],那么?是否存在任何性能差异,例如java.lang.StringBuffer和java.lang.StringBuilder?

scala

32
推荐指数
2
解决办法
9245
查看次数

使用其他文件在YARN群集上运行Spark作业

我正在编写一个简单的spark应用程序,它使用一些输入RDD,通过管道将它发送到外部脚本,并将该脚本的输出写入文件.驱动程序代码如下所示:

val input = args(0)
val scriptPath = args(1)
val output = args(2)
val sc = getSparkContext
if (args.length == 4) {
  //Here I pass an additional argument which contains an absolute path to a script on my local machine, only for local testing
  sc.addFile(args(3))
}

sc.textFile(input).pipe(Seq("python2", SparkFiles.get(scriptPath))).saveAsTextFile(output)
Run Code Online (Sandbox Code Playgroud)

当我在我的本地机器上运行它时工作正常.但是当我通过提交给YARN集群时

spark-submit --master yarn --deploy-mode cluster --files /absolute/path/to/local/test.py --class somepackage.PythonLauncher path/to/driver.jar path/to/input/part-* test.py path/to/output` 
Run Code Online (Sandbox Code Playgroud)

它以一个例外而失败.

Lost task 1.0 in stage 0.0 (TID 1, rwds2.1dmp.ru): java.lang.Exception: Subprocess exited with status 2
Run Code Online (Sandbox Code Playgroud)

我尝试过管道命令的不同变体.例如,.pipe("cat") …

hdfs hadoop-yarn apache-spark

9
推荐指数
1
解决办法
9768
查看次数

在Java 8中编写算术运算函数的简明方法

我想在List<Integer>via reduce中总结所有元素.

在Scala我可以写

val result = list.reduce(_ + _)
Run Code Online (Sandbox Code Playgroud)

有没有办法在Java8中以这种简洁的方式编写此操作?或者我应该这样写?

int result = list.reduce((x,y) -> x + y));
Run Code Online (Sandbox Code Playgroud)

java functional-programming java-8

4
推荐指数
1
解决办法
104
查看次数