neo4j 火花连接器无法正常工作

时间:2021-04-01 07:01:38

标签: apache-spark neo4j

我想使用 1

将 Spark GraphX 与 Neo4j 集成

我尝试按照 2 中的步骤操作,但不起作用。

我应该如何处理 neo4j-connector-apache-spark_2.12-4.0.0.jar 文件?我把它放在了 Spark 文件夹中的 jar 文件中。

在 bash 中我写:

C:>Spark\spark-3.1.1-bin-hadoop2.7\bin\spark-shell --jars neo4j-connector-apache-spark_2.12-4.0.0.jar

请问有什么建议吗?

更新编号。 1

我试过这个 C:\Spark\spark-3.1.1-bin-hadoop2.7\bin\spark-shell --packages neo4j-contrib:neo4j-connector-apache-spark_2.12:4.0.0

我认为它有效。但是当我想将 DataFrame 写入 spark-shell 中 Person 类型的节点时:

import org.apache.spark.sql.{SaveMode, SparkSession}

val spark = SparkSession.builder().getOrCreate()
import spark.implicits._

val df = Seq(
("John Doe"),
("Jane Doe")
).toDF("name")

df.write.format("org.neo4j.spark.DataSource")
.mode(SaveMode.ErrorIfExists)
.option("url", "bolt://localhost:7687")
.option("authentication.basic.username", "neo4j")
.option("authentication.basic.password", "neo4j")
.option("labels", ":Person")
.save()

它会引发错误。我该怎么办?

更新编号。 2

我按照 3 中的步骤操作,但在输入时出错:

val neo = Neo4j(sc) 

如下:

错误:未找到:值 Neo4j

1 个答案:

答案 0 :(得分:0)

使用:

$SPARK_HOME\bin\spark-shell --conf spark.neo4j.password=<password> --packages neo4j-contrib:neo4j-spark-connector:2.4.5-M2

代替:

$SPARK_HOME\bin\spark-shell --conf spark.neo4j.bolt.password=<password> --packages neo4j-contrib:neo4j-spark-connector:2.4.5-M2

只需删除bolt 字样。

更新' 现在我想使用以下包:

$SPARK_HOME/bin/spark-shell --packages neo4j-contrib:neo4j-connector-apache-spark_2.12:4.0.1_for_spark_3

1

中所述

唯一有效的是以下(旧版本):

$SPARK_HOME/bin/spark-shell --packages neo4j-contrib:neo4j-spark-connector:2.4.5-M2

但是使用它,Neo4jGraph.saveGraph 不起作用。错误是:不允许以读访问模式写入。

感谢您的帮助。