有一些XML和常规文本文件位于2个演出的北部。每次我想在Spark中尝试某些操作时都将整个文件加载到内存中,这在我的机器上花费了太长时间。
有没有一种方法可以只读取文件的一部分(类似于对大型表运行SQL命令并且只获取几行而不会花费很多时间)?
答案 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
...