我正在使用最新的社区Neo4j(2.2.0-M03)来存储我的图表.我有兴趣从Python访问它.根据官方Neo4j 文档,有几种选择.
根据我的理解,通过检查文档,玩一下,并查看这篇文章,py2neo是唯一一个支持Neo4j 2(和标签).但是,如果我想在Neo4j上编写和运行特定的算法,我应该使用Gremlin,通过灯泡,但是它似乎不支持Neo4j 2.
现在,我想使用一些目前不在Neo4j中的自定义算法,比如Spreading Activation.是用Java编写Neo4j直接编写算法,使用cypher命令通过py2neo从Python运行它们是唯一的选择吗?我错过了什么吗?
干杯
PS.我想发布我引用的所有软件的链接,但不幸的是我需要至少10个声望才能发布超过2个链接...
我正在尝试执行聚合,然后在 Structured Streaming 上执行自连接DataFrame
。假设 df 如下所示:
sourceDf.show(false)
+-----+-------+
|owner|fruits |
+-----+-------+
|Brian|apple |
|Brian|pear |
|Brian|melon |
|Brian|avocado|
|Bob |avocado|
|Bob |apple |
+-----+-------+
Run Code Online (Sandbox Code Playgroud)
在 static 上DataFrame
,这很容易:
val aggDf = sourceDf.groupBy($"owner").agg(collect_list(col("fruits")) as "fruitsA")
sourceDf.join(aggDf, Seq("owner")).show(false)
+-----+-------+-----------------------------+
|owner|fruits |fruitsA |
+-----+-------+-----------------------------+
|Brian|apple |[apple, pear, melon, avocado]|
|Brian|pear |[apple, pear, melon, avocado]|
|Brian|melon |[apple, pear, melon, avocado]|
|Brian|avocado|[apple, pear, melon, avocado]|
|Bob |avocado|[avocado, apple] |
|Bob |apple |[avocado, apple] |
+-----+-------+-----------------------------+
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法弄清楚如何在 Streaming 的情况下执行此操作DataFrame
。因此,我尝试使用以下完整代码,该代码将 Kafka 用于源和接收器: …