Apache spark 在RDD上设置正确数量的分区
我读到一些评论说,RDD的分区数是核心数的2-3倍。我有8个节点,每个节点有两个12核处理器,所以我有192个核,我在384-576之间设置了分区,但它似乎没有有效地工作,我尝试了8个分区,同样的结果。也许我必须设置其他参数,以便我的工作在集群上比在机器上更好地工作。我补充说,我分析的文件有150k行Apache spark 在RDD上设置正确数量的分区,apache-spark,partitioning,rdd,Apache Spark,Partitioning,Rdd,我读到一些评论说,RDD的分区数是核心数的2-3倍。我有8个节点,每个节点有两个12核处理器,所以我有192个核,我在384-576之间设置了分区,但它似乎没有有效地工作,我尝试了8个分区,同样的结果。也许我必须设置其他参数,以便我的工作在集群上比在机器上更好地工作。我补充说,我分析的文件有150k行 val data = sc.textFile("/img.csv",384) 主要效果是指定的分区太少或太多 分区太少,您将无法利用集群中所有可用的核心 分区过多将导致管理许多小任务的开销过大
val data = sc.textFile("/img.csv",384)
主要效果是指定的分区太少或太多
希望这会有帮助 “似乎工作效率不高”是一个相当笼统的描述。你能提供一些细节吗?它在8个节点上比在我的单台机器上工作得慢。Well,150k不是很多(数据集的大小是多少?),除非你进行真正复杂的转换协调和通信开销可能只会比在本地执行任务的成本更大。我还有一个文件,有2m行和5列,我怎样才能相应地设置分区号?你有没有为你的大文件尝试过2-3*内核?但老实说,200万也不算多。你在每一行上做什么计算?