运行pyspark svm模型时CPU使用率低



我正在尝试在非常非常大的数据集上运行svm,但我无法使用sklearn运行它。学习sklearn需要无尽的时间。所以我决定用pyspark以下是我的火花配置

[('spark.app.id', 'local-1606562652917'),
('spark.executor.id', 'driver'),
('spark.app.name', 'SVM'),
('spark.driver.maxResultSize', '6g'),
('spark.driver.port', '60042'),
('spark.executor.cores', '6'),
('spark.rdd.compress', 'True'),
('spark.serializer.objectStreamReset', '100'),
('spark.master', 'local[*]'),
('spark.submit.pyFiles', ''),
('spark.submit.deployMode', 'client'),
('spark.driver.host', '192.168.56.1'),
('spark.ui.showConsoleProgress', 'true'),
('spark.cores.max', '6')]

这里是火花会话

spark = SparkSession.builder 
.appName('SVM') 
.master('local[*]') 
.getOrCreate()

这是SVM代码

from pyspark.ml.classification import LinearSVC,OneVsRest
clf = OneVsRest(classifier=LinearSVC(labelCol='label', featuresCol='features'))
clf = clf.fit(train)

当我通过任务管理器进行检查时,Cpu消耗小于10%。

Spark具有惰性求值,在调用类似df.show()df.toPandas()的东西之前不会计算任何内容。因此,在Spark开始评估之前,根本不会有CPU消耗。

正如@desertnaut所建议的,Spark的性能将取决于您所拥有的硬件,例如,它在集群上速度很快,但在单机上速度很慢。

最新更新