通常我使用yarn-client模式在驱动程序中运行带有不同版本Python的代码,而不是在工作节点中运行我的代码。pyspark api在纱线客户端模式中调用同一个Python版本的工人
例如,我通常在驱动程序中使用python3.5,在worker中使用默认的python2.6,并且这种工作非常有效。
目前我在一个项目中,我们需要调用
sqlContext.createDataFrame
但这似乎尝试在Python中的工人来执行这句话,然后我得到了在安装Python的同一版本的要求工人,这是我想要避免的。
因此,对于使用“sqlContext.createDataFrame”,需要在驱动程序和工作者中使用相同的python版本?
如果是这样,哪个其他“纯粹”的pyspark.sql api调用也会有这个要求?
感谢, 何塞
但是,所有其余的api调用并不需要在工人中使用相同的python。为什么这需要它?例如,toPandas()不需要这个。 –
一般而言,Spark在每台机器上都需要相同版本的Python。 API的某些部分不使用Python执行程序,因此您永远不会遇到代码失败的情况。但它并没有成功。 – 2016-11-28 12:14:26