如何在不加载整个文件的情况下读取前n行?

时间:2018-07-19 17:48:51

标签: apache-spark

有一些XML和常规文本文件位于2个演出的北部。每次我想在Spark中尝试某些操作时都将整个文件加载到内存中,这在我的机器上花费了太长时间。

有没有一种方法可以只读取文件的一部分(类似于对大型表运行SQL命令并且只获取几行而不会花费很多时间)?

1 个答案:

答案 0 :(得分:1)

使用limit(n)可以在读取文件时将行数限制为n。

对于csv文件,可以通过以下方式完成:

spark.read.csv("/path/to/file/").limit(n)

和文本文件为:

spark.read.text("/path/to/file/").limit(n)

在获得的数据帧上运行explain表明未加载整个文件,此处在csv文件上加载了n=3

== Physical Plan ==
CollectLimit 3
...