<p>我试图在并行代码中使用“apply”,但是“apply”根本不起作用。在使用Spark(RDD上的并行化)时,我们可以在分发给执行者的代码中使用“apply”吗?你知道吗</p>
<p>代码:</p>
<pre><code>def testApply(k):
return pd.DataFrame({'col1':k,'col2':[k*2]*5})
def testExec(x):
df=pd.DataFrame({'col1':range(0,10)})
ddf=pd.DataFrame(columns=['col1', 'col2'])
##In my case the below line doesn't get executed at all
res= df.apply(lambda row: testApply(row.pblkGroup) if row.pblkGroup%2==0 else pd.DataFrame(), axis=1)
list1=[1,2,3,4]
sc=SparkContext.getOrCreate()
testRdd= sc.parallelize(list1)
output=testRdd.map(lambda x: testExec(x)).collect()
</code></pre>