如何拆分输入数据并将其加载到RDD

时间:2016-02-03 09:46:42

标签: java apache-spark rdd

我使用Apache Spark处理数TB的数据。我使用代码sparkContext.binaryFiles(folderpath)来加载文件夹中的所有数据。 我认为它将完整数据加载到RDD并导致OutOfMemory错误。

如何将1TB数据拆分为250GB并让RDD加载?

1 个答案:

答案 0 :(得分:2)

不幸的是,binaryFiles将每个文件作为RDD中的一个条目加载。我假设您将所有数据都放在一个文件中,或者仅包含其中几个。

基本上,您有两种选择:

  • 如果可能,将文件拆分为较小的文件(实际方法取决于数据格式)
  • 实施InputFormat,了解您的数据格式(或搜索已经执行此操作的格式)并正确设置拆分数量。然后,您可以使用sparkContext.hadoopFile()方法传递输入格式。