Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何使Spark使用所有的磁芯?_Apache Spark_Pyspark - Fatal编程技术网

Apache spark 如何使Spark使用所有的磁芯?

Apache spark 如何使Spark使用所有的磁芯?,apache-spark,pyspark,Apache Spark,Pyspark,我一直在UbuntuAWS盒上使用spark-1.4.1,有64GB内存和36个内核。有一个大小为965MB的文本文件,其中包含17mn行。我正在将其加载到内存中,并使用spark映射rdd,如下所示: def clean(line): line = line.strip().replace("'","").split('\t') return (line[0], int(line[1])) data = sc.parallelize(open('data.tsv

我一直在UbuntuAWS盒上使用spark-1.4.1,有64GB内存和36个内核。有一个大小为965MB的文本文件,其中包含17mn行。我正在将其加载到内存中,并使用spark映射rdd,如下所示:

def clean(line):
       line = line.strip().replace("'","").split('\t')
       return (line[0], int(line[1]))


data = sc.parallelize(open('data.tsv')).map(lambda x: clean(x)).groupByKey()
两件事: 我希望Spark能够使用我的机器中所有可用的内核(36个),但我发现只有一个CPU一直在使用。(我发现使用htop)如何才能使用所有CPU

因为它没有使用所有的CPU,这可能就是它无法处理17mn行的原因。它给了我这个错误:

1)请不要同时问两个问题:)2)在没有看到您的配置、rdd和群集管理器中的分区数的情况下,很难说Spark为什么没有利用所有内核3)索引越界建议使用一些格式不正确的行,这些行没有被
clean
函数正确处理。因此,
#处理行
很可能是最重要的4)堆栈跟踪,因为文本比屏幕截图好得多。同意1,但我认为两者可能相关。我再查一下3。大约2:这是一个独立的spark应用程序。没有节点。如何查看配置?为什么
open('data.tsv')
而不是
sc.textFile()
?我没有意识到这是一个选项。谢谢你提醒我。那会有区别吗?一般来说会的
parallelize
在本地读取数据并分发给工作人员,
textFile
在每个工作人员上并行读取数据。关于配置,您可以从
sc.\u conf.getAll()
开始。请给您提供完整的
clean
代码?