读取节点

本页中的所有示例都假定 SparkSession 已使用适当的身份验证选项进行了初始化。有关更多详细信息,请参阅快速入门示例

使用 labels 选项,连接器将从 Neo4j 数据库中读取具有给定标签的节点集。

连接器会构建一个使用 SKIPLIMIT 读取批量行的 MATCH Cypher® 查询。

来自示例的代码将 :Person 节点及其节点属性读取到 DataFrame 中。

示例
val df = spark.read
    .format("org.neo4j.spark.DataSource")
    .option("labels", ":Person")
    .load()

df.show()
示例
df = (
    spark.read.format("org.neo4j.spark.DataSource")
    .option("labels", ":Person")
    .load()
)

df.show()
等效 Cypher 查询
MATCH (n:Person)
RETURN
  id(n) AS `<id>`,
  labels(n) AS `<labels>`,
  n.surname AS surname,
  n.name AS name,
  n.age AS age
...

查询可能包含 SKIPLIMIT 子句,具体取决于并行度级别。

表 1. 结果
<id> <labels> 姓氏 名字 年龄

0

[Person]

Doe

Jane

40

39

[Person]

Doe

John

42

您可以使用冒号作为分隔符读取具有多个标签的节点。第一个标签前的冒号是可选的。

示例
val df = spark.read
    .format("org.neo4j.spark.DataSource")
    // ":Person:Employee" and "Person:Employee"
    // are equivalent
    .option("labels", ":Person:Employee")
    .load()

df.show()
示例
df = (
    spark.read.format("org.neo4j.spark.DataSource")
    # ":Person:Employee" and "Person:Employee"
    # are equivalent
    .option("labels", ":Person:Employee").load()
)

df.show()

DataFrame 列

结果 DataFrame 包含与节点属性数量相同的列,外加两个附加列:

  • <id>:Neo4j 内部 ID

  • <labels>:每个节点的标签列表

节点属性列的模式推断如模式推断中所述。

© . All rights reserved.