如何在Spark中使用大量数据

时间:2015-10-07 09:04:05

标签: apache-spark

我正在使用python中的spark,尝试将PDF文件映射到一些自定义解析。目前我正在使用pdfs = sparkContext.binaryFiles("some_path/*.pdf")加载PDFS。 我将RDD设置为可以使用pdfs.persist( pyspark.StorageLevel.MEMORY_AND_DISK )在磁盘上缓存。

然后我尝试映射解析操作。然后保存一个pickle但它失败了,堆中出现了内存不足的错误。你能帮帮我吗?

以下是我所做的简化代码:

from pyspark import SparkConf, SparkContext
import pyspark

#There is some code here that set a args object with argparse.
#But it's not very interesting and a bit long, so I skip it.

def extractArticles( tupleData ):
    url, bytesData = tupleData
    #Convert the bytesData into `content`, a list of dict
    return content

sc = SparkContext("local[*]","Legilux PDF Analyser")

inMemoryPDFs = sc.binaryFiles( args.filePattern )
inMemoryPDFs.persist( pyspark.StorageLevel.MEMORY_AND_DISK )


pdfData = inMemoryPDFs.flatMap( extractArticles )
pdfData.persist( pyspark.StorageLevel.MEMORY_AND_DISK )
pdfData.saveAsPickleFile( args.output )

0 个答案:

没有答案