有没有办法获取Spark数据帧的前1000行?


77

我正在使用该randomSplit函数来获取少量数据帧以用于开发目的,而我最终只是采用了此函数返回的第一个df。

val df_subset = data.randomSplit(Array(0.00000001, 0.01), seed = 12345)(0)

如果我使用它,df.take(1000)那么我最终将得到一个行数组,而不是一个数据框,因此这对我不起作用。

是否有更好,更简单的方法来获取df的前1000行并将其存储为另一个df?

Answers:


151

您正在寻找的方法是.limit

通过获取前n行来返回新的数据集。此函数与head之间的区别在于head返回一个数组,而limit返回一个新的Dataset。

用法示例:

df.limit(1000)

4
仅作记录,我使用.limit,它返回了一个Dataset而不是DataFrame(这不是问题)
hipoglucido

2
感谢更新。似乎Spark 2.X发生了很大变化:)
Markon

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.