2017-07-27 92 views
0

我有一個PySpark代碼,它接收多個輸入數據幀並生成一個數據幀作爲輸出。 我在DF上執行了許多火花轉換(映射,過濾器,連接,減少鍵...),但沒有火花動作。我執行的唯一操作是在代碼的結尾(輸出df的count())。 代碼太長,把它放在這裏,但它看起來像這樣:轉換是否影響PySpark中的動作執行時間?

df1 = HiveContext.sql("select * from db.table1") 
df2 = HiveContext.sql("select * from db.table2") 
... 
... 
dfN = HiveContext.sql("select * from db.tableN") 

#map transformation 
#join transformations 
#filter transformation 
... 
resultDF.count() 

所以我有兩個問題:1。 結合是否多個轉換影響PySpark行動的執行時間? 2.因爲我最後只執行一個動作,會兌現提高這個代碼的性能嗎?

感謝您的幫助!

回答

0
  1. 組合多個轉換會影響PySpark中的Action執行持續時間嗎?

是的。

  1. 因爲我最後只執行一個動作,會兌現改善這個代碼的性能嗎?

不,因爲在您執行某個操作之前,轉換會被延遲評估。

+0

謝謝先生,這是一個非常有用的文章:) – Tempora

相關問題