2017-08-29 29 views
0

我知道RDDs應該是cache(),如果它們以後會被多次使用的話。Spark DataFrame多次在同一列上調用函數

但是DataFrame呢?這種情況下

思考:

df = spark.createDataFrame([('1', ['a', 'B']), ('2', ['C', 'd'])], ['idx', 'item']) 
res = df.select(df['idx'], *[upper(df['item'][i]) for i in range(2)]) 

我呼籲df['item']upper兩次。

df第二次做upper時再次生成嗎?

我應該致電cache()df

回答

0

無需緩存 - 您的代碼只能訪問df一次。參考列:

df['item'][i] 

不需要對數據進行任何計算。

相關問題