问题描述
我想使用 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
解决方法
使用:
$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 不起作用。错误是:不允许以读访问模式写入。
感谢您的帮助。