Neo4j 从数据帧中提取大型数据集
我最近在Jupyter笔记本上与pyspark合作。我试图从拼花地板文件中读取数据,以便用这些数据在Neo4J中构建一个图形。我可以成功地将HDFS中的数据加载到数据帧中 当数据大小受到限制时,一切正常,我可以使用collect()方法提取python列表,然后在其上循环。当数据大小增加时,显然会出现“java堆大小”错误(数据帧包含超过1300万行,几十万行,分布在五列中) 我曾尝试使用foreach(f),但我得到了“元组索引超出范围”。 当我使用df.select('columnName').show()时,我能够查看数据;但问题是,我需要提取这些值,以便使用Neo4j会话(session.run('Cypher query')构造图 我的问题是:当我有大量的数据时,有没有办法在数据帧的行上循环(从而从行中提取数据)Neo4j 从数据帧中提取大型数据集,neo4j,pyspark,spark-dataframe,jupyter-notebook,bigdata,Neo4j,Pyspark,Spark Dataframe,Jupyter Notebook,Bigdata,我最近在Jupyter笔记本上与pyspark合作。我试图从拼花地板文件中读取数据,以便用这些数据在Neo4J中构建一个图形。我可以成功地将HDFS中的数据加载到数据帧中 当数据大小受到限制时,一切正常,我可以使用collect()方法提取python列表,然后在其上循环。当数据大小增加时,显然会出现“java堆大小”错误(数据帧包含超过1300万行,几十万行,分布在五列中) 我曾尝试使用foreach(f),但我得到了“元组索引超出范围”。 当我使用df.select('columnName'
注:我正在使用这些库:findspark、pyspark、neo4j.v1我发现没有答案。我正在发布我如何解决问题,以防将来有人遇到同样的问题。完全相同的代码在python 2内核上工作,但在python 3上没有。 我必须安装一个支持Pyton 2.7的较旧版本的jupyter,一切都进行得非常顺利(如果您在一个拥有完全权限和internet连接的服务器上工作,您可以在第一个内核的基础上安装一个新内核)。 我没有使用collect(),而是使用了foreachPartition(),结果非常好