rdd map操作为啥集中在一个executor上实施

qq_33801096 2019-09-10 08:46:14
python写了一个很简单的程序:
conf=Sparkconf().setMaster("spark://123.43.54.12:7077").setAppname("test")
sc=SparkContext(conf=conf)
def ct(p):
temp=0
for i in range(10000):
tempi=math.sin(i)+math.cos(i)
temp=temp+tempi
return temp

p_list=list(range(100000))
p_rdd=sc.parallelize(p_list,4)
gt_value=p_rdd.map(lambda p:ct(p)).coalesce(144)

sc.stop()

每次执行都发现,仅仅在一个executor上运行,每次执行,且worker的地址可能会变化。根本不能使用所有的执行器。
提交语法:
submit --master spark://123.43.54.12:7077 --deploy-mode client --num-executors 2 --executor-cores 1

很是奇怪。操作系统的逻辑cpu3个。。
...全文
77 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,261

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧