Apache Spark數據集API有兩種方法,即head(n:Int)
和take(n:Int)
。Apache Spark DataSet API:head(n:Int)vs take(n:Int)
Dataset.Scala源包含
def take(n: Int): Array[T] = head(n)
找不到這兩個功能之間執行代碼的任何差異。爲什麼API有兩種不同的方法來產生相同的結果?
Apache Spark數據集API有兩種方法,即head(n:Int)
和take(n:Int)
。Apache Spark DataSet API:head(n:Int)vs take(n:Int)
Dataset.Scala源包含
def take(n: Int): Array[T] = head(n)
找不到這兩個功能之間執行代碼的任何差異。爲什麼API有兩種不同的方法來產生相同的結果?
的原因是因爲,在我看來,阿帕奇星火數據集API試圖模仿大熊貓數據幀API包含head
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.head.html。
我認爲這是因爲火花開發者傾向於給它一個豐富的API,還有兩種方法where
和filter
,它們完全一樣。
這只是一個實施選擇。這一點沒什麼可討論的。 – eliasah
如果你不傳遞任何參數給它,而返回'Row',而'take'總是返回'Array',這是我能想到的唯一區別。 – philantrovert
@eliasah - 那麼,我們可以把它看作是API的冗餘嗎? –