Spark Decision树适合在1个任务

时间:2016-07-03 00:19:54

标签: apache-spark machine-learning emr

我正在努力训练"使用在Amazon EMR中的群集中运行的Apache Spark的DecisionTreeClassifier。即使我可以看到添加了大约50个Executor,并且通过使用SparkSQL查询Postgres数据库并存储在DataFrame中来创建这些功能。 DesisionTree fit方法需要花费很多时间,即使数据集不是那么大(10.000 db条目,每行有几百个字节)。

我可以看到只有这是一项任务,所以我认为这就是它如此缓慢的原因。
我应该在哪里查找在一项任务中运行的原因? 这是我检索数据的方式吗? 我很抱歉,如果这有点模糊,但我不知道检索数据的代码是否相关,或者它是算法中的参数(虽然我没有在网上找到任何东西),或者是它只是Spark调优? 我很欣赏任何方向!

提前谢谢。

1 个答案:

答案 0 :(得分:1)

Spark依赖于数据位置。似乎所有数据都位于一个地方。因此spark使用单个分区来处理它。您可以应用重新分区或说明您希望在加载时使用的分区数。我还会查看决策树Api,看看你是否可以专门为它设置分区数。 基本上,分区是您的并行度。