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的冗余吗? –