match p=(:dwd_hive_blood_di_upper{id:'${id}'})-[:table2table*1..${dowm}]->(result:dwd_hive_blood_di_upper) return nodes(p) as node
时间: 2024-04-02 09:32:01 浏览: 15
这是一个Cypher查询语句,用于在Neo4j图数据库中查询从一个指定节点(:dwd_hive_blood_di_upper{id:'${id}'})出发,沿着任意数量的table2table关系(1到${down}个)到达的所有节点,并将这些节点作为结果返回。其中${id}和${down}是查询参数,需要在查询时提供具体的值。返回的结果中,每个节点都被表示为一个单独的行,其中包含了节点的所有属性。
相关问题
Cypher查询语句中,p=(:dwd_hive_blood_di_upper{id:'${id}'}) 和 (p:dwd_hive_blood_di_upper{id:'${id}'}) 写法的区别
在Cypher查询语句中,p=(:dwd_hive_blood_di_upper{id:'${id}'})和(p:dwd_hive_blood_di_upper{id:'${id}'})的写法有所不同:
- p=(:dwd_hive_blood_di_upper{id:'${id}'})是一个模式匹配,表示将匹配到的节点/关系赋值给变量p。这里的模式是一个简单的节点,它不需要有标签,但必须有一个id属性等于${id}的节点才能匹配成功。如果匹配成功,变量p将成为一个节点,节点的属性可以通过p.id、p.name等方式访问。
- (p:dwd_hive_blood_di_upper{id:'${id}'})是一个节点变量声明,表示声明一个节点变量p,并将其绑定到一个具有标签dwd_hive_blood_di_upper和id属性等于${id}的节点。这里的p是一个节点变量,它可以在查询中用于引用这个节点,例如p.name、p.age等。
因此,两种写法的主要区别在于是否需要将匹配到的节点赋值给一个变量,并且在使用变量时的方式略有不同。
hive 报错FAILED: ParseException line 2:23 cannot recognize input near '.' 'dwd_start_log' 'partition' in table name
这个错误一般是因为在 Hive 的 SQL 语句中表名写法有误,导致 Hive 无法识别表名。
你可以检查一下你的 SQL 语句,看看是否在表名中使用了不正确的字符或者格式。比如,如果你的表名中包含了点号(.),需要使用反引号将其括起来,例如:
```
SELECT * FROM `mydb.dwd_start_log` WHERE partition='20220101';
```
如果你的表名中不包含点号,那么就不需要使用反引号。
另外,你还需要确保你要查询的表在 Hive 中已经存在,并且你对该表有足够的权限进行查询操作。