apache-spark - 如何在 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()
解决方案
好吧,您需要将“密码”更改为您设置的密码,并确保已正确指定用户名。
推荐阅读
- java - 计数器重置在 Java 中不起作用
- ruby-on-rails - Rails 5 简单的搜索表单不起作用
- python - 如何从 SQL like 子句生成新的数据框?
- firefox - 虚幻引擎 4 中的 Firefox WebAssembly 特定性能问题
- c++ - 初始化指针时写访问冲突
- c++ - Its possible write an context property on QML from C++?
- c# - 无法从由数据表填充的下拉列表中选择正确的 dropdownlist.selectedItem.text
- java - 将 int 更改为矩阵中的字符串
- swift - 使用 swift 打开可选值蓝牙时意外发现 nil
- javascript - Webpack 输出两个包:source is node_modules vs src?