Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何在Spark中使用大量数据_Apache Spark - Fatal编程技术网

Apache spark 如何在Spark中使用大量数据

Apache spark 如何在Spark中使用大量数据,apache-spark,Apache Spark,我正在使用python中的spark,尝试将PDF文件映射到一些自定义解析。目前我正在加载带有PDFS=sparkContext.binaryFiles(“some_path/*.pdf”)的pdf文件。 我将RDD设置为可在带有pdfs.persist(pyspark.StorageLevel.MEMORY\u和\u disk)的磁盘上进行缓存 然后我尝试映射解析操作。然后保存pickle,但由于堆中内存不足错误而失败。你能帮我吗 以下是我所做工作的简化代码: from pyspark imp

我正在使用python中的spark,尝试将PDF文件映射到一些自定义解析。目前我正在加载带有
PDFS=sparkContext.binaryFiles(“some_path/*.pdf”)
的pdf文件。 我将RDD设置为可在带有
pdfs.persist(pyspark.StorageLevel.MEMORY\u和\u 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 )

哪一部分实际上失败了?当您使用
data.first()
/
data.count()
时,它是否有效?它在
saveAsPickleFile
上失败。我没有数数。它当前正在使用
data.persist(pyspark.StorageLevel.MEMORY\u和\u DISK)再次运行
如果是,请尝试。实际上,
saveAsPickleFile
不太可能是失败的部分,但这是触发任何计算的第一个动作。我做了几次。它绝对不会改变什么。映射失败,出现outOfMemory java错误。我对问题进行了编辑,以包含我所做工作的更精确代码。因此,如果在
flatMap
期间失败,则表示它与保存无关。关于正确的Spark配置,您应该很容易找到解决方案。