首页 > 解决方案 > 如何在 IDE 中将 spark 连接到 neo4j

问题描述

不使用 Spark shell 就没有办法连接 Spark 和 Neo4j 吗?我已经尝试过 Neo4jREST API 并在 Conf 文件中找到了一些东西,但是我没有看到任何在两个程序之间建立连接以便我可以从我的代码中查询的驱动程序/连接器。

编辑:这是我遇到的错误。

ERROR Executor: Exception in task 0.0 in stage 0.0 (TID 0)
org.neo4j.driver.v1.exceptions.ClientException: Unsupported authentication token, scheme='none' only allowed when auth is disabled: { scheme='none' }
at org.neo4j.driver.internal.connector.socket.SocketResponseHandler.handleFailureMessage(SocketResponseHandler.java:68)
at org.neo4j.driver.internal.messaging.PackStreamMessageFormatV1$Reader.unpackFailureMessage(PackStreamMessageFormatV1.java:456)
at org.neo4j.driver.internal.messaging.PackStreamMessageFormatV1$Reader.read(PackStreamMessageFormatV1.java:417)
at org.neo4j.driver.internal.connector.socket.SocketClient.receiveOne(SocketClient.java:128)
at org.neo4j.driver.internal.connector.socket.SocketConnection.receiveOne(SocketConnection.java:135)
at org.neo4j.driver.internal.connector.ConcurrencyGuardingConnection.receiveOne(ConcurrencyGuardingConnection.java:150)
at org.neo4j.driver.internal.pool.PooledConnection.receiveOne(PooledConnection.java:142)
at org.neo4j.driver.internal.InternalStatementResult.tryFetchNext(InternalStatementResult.java:303)
at org.neo4j.driver.internal.InternalStatementResult.hasNext(InternalStatementResult.java:181)
at org.neo4j.spark.Executor$.execute(Neo4j.scala:399)
at org.neo4j.spark.Neo4jRDD.compute(Neo4j.scala:445)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:323)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:287)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87)
at org.apache.spark.scheduler.Task.run(Task.scala:108)
at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

使用此代码尝试建立连接:

val driver: Driver = GraphDatabase.driver("bolt://localhost:7687", 
AuthTokens.basic("neo4j", "password"))
val session = driver.session()

val query = neo.cypher("MATCH (n:Person) RETURN n.name").partitions(5).batch(10000).loadDataFrame()
println(query.show())

session.close()
driver.close()

标签: apache-sparkneo4jdatabase-connectionconfiguration-files

解决方案


好吧,您需要将“密码”更改为您设置的密码,并确保已正确指定用户名。


推荐阅读