从 Neo4j 读取数据

该连接器提供了三种数据源选项,用于从 Neo4j 数据库读取数据。

表 1. 读取选项
选项 描述 默认

labels

如果您只需要读取具有其属性的节点,请使用此选项。

要读取的节点标签的冒号分隔列表。

(空)

relationship

如果您需要读取关系及其源节点和目标节点,请使用此选项。

要读取的关系类型。

(空)

query

如果您需要更大的灵活性并且知道如何编写 Cypher® 查询,请使用此选项。

包含 MATCH 子句的 Cypher 查询。

(空)

示例

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

您可以运行每个选项的写入示例,以获取一些可供读取的示例数据。

labels 选项

读取 :Person 节点。

示例
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()

有关更多信息和示例,请参阅读取节点

relationship 选项

读取 :BOUGHT 关系及其源节点、目标节点和属性。

示例
val df = spark.read
    .format("org.neo4j.spark.DataSource")
    .option("relationship", "BOUGHT")
    .option("relationship.source.labels", ":Customer")
    .option("relationship.target.labels", ":Product")
    .load()

df.show()
示例
df = (
    spark.read.format("org.neo4j.spark.DataSource")
    .option("relationship", "BOUGHT")
    .option("relationship.source.labels", ":Customer")
    .option("relationship.target.labels", ":Product")
    .load()
)

df.show()

有关更多信息和示例,请参阅读取关系

query 选项

使用 Cypher 查询读取数据。

示例
val readQuery = """
  MATCH (n:Person)
  RETURN id(n) AS id, n.fullName AS name
"""

val df = spark.read
    .format("org.neo4j.spark.DataSource")
    .option("query", readQuery)
    .load()

df.show()
示例
read_query = """
    MATCH (n:Person)
    RETURN id(n) AS id, n.fullName AS name
"""

df = (
    spark.read.format("org.neo4j.spark.DataSource")
    .option("query", read_query)
    .load()
)

df.show()

有关更多信息和示例,请参阅使用 Cypher 查询读取

类型映射

有关 Spark DataFrames 和 Neo4j 之间完整类型映射的详细信息,请参阅数据类型映射

性能注意事项

如果未指定模式,Spark 连接器将使用采样。由于采样可能是一个昂贵的操作,请考虑定义模式

© . All rights reserved.