2017-07-25 28 views
-1

爲什麼Spark的show()函數非常慢?

df.select("*").filter(df.itemid==itemid).show() 

和永不終止,但如果我這樣做

print df.select("*").filter(df.itemid==itemid) 

它打印在不到一秒鐘。爲什麼是這樣?

+0

你的設置是什麼?本地模式?獨立?嘗試如下所示:'df = spark.createDataFrame([('a',),('b',),('c',)],['col1'])'',接着是'df.show() '(應該是幾秒鐘) –

+0

@ TwUxTLi51Nus我在本地機器上,連接到Oracle數據庫。是的,這花了一秒鐘來展示。 – Pear

+0

你如何調用Spark?通過'pyspark'外殼?什麼是你的「火花大師」?本地計算機或遠程計算機上是否有Oracle數據庫?您是否可以使用除Spark以外的其他工具連接到Oracle數據庫 –

回答

0

這是因爲selectfilter只是構建執行指令,所以他們沒有對數據做任何事情。然後,當您致電show時,它實際上會執行這些說明。如果它沒有終止,那麼我會查看日誌以查看是否有任何錯誤或連接問題。或者,也許數據集仍然過大 - 嘗試只用5來看看它是否快速回來。

+0

我嘗試過'df.show(1)',但這也是永遠的。我不認爲這是一個連接錯誤 – Pear

相關問題