当我在Spark-Shell中运行一些Apache Spark示例或作为一项工作时,我无法在一台机器上实现完全核心利用率。例如:
var textColumn = sc.textFile("/home/someuser/largefile.txt").cache()
var distinctWordCount = textColumn.flatMap(line => line.split('\0'))
.map(word => (word, 1))
.reduceByKey(_+_)
.count()
运行此脚本时,我在8核计算机上只看到1个或2个活动核心。 Spark不应该和它并行吗?
答案 0 :(得分:5)
您可以使用=LEFT(LOOKUP(2,1/(D:D<>0),D:D),LEN(LOOKUP(2,1/(D:D<>0),D:D))-2)
本地运行Spark,其中包含与您的计算机一样多的工作线程。
答案 1 :(得分:1)
运行本地spark shell时,仍然需要指定spark任务将使用的核心数。如果你想使用8核,请确保
export MASTER=local[8]
在运行shell之前。
另外,正如@zsxwing所说,您可能需要确保将数据划分为足够的分区以保持所有核心繁忙,或者指定要查看的并行数量。