首页 > 解决方案 > java.lang.RuntimeException:无法从空结果推断模式类型,请使用 loadDataFrame(schema: (String,String)*)

问题描述

我正在尝试使用 spark neo4j 连接器创建数据集

Ex: Dataset< Row > myDF= Neo4j.apply(sparkSession.sparkContext()).cypher(myquery, parameters).loadDataFrame(); 
myDF.createOrReplaceTempView("Mytable");

当我们有来自 Neo4j 的查询结果时,这可以正常工作。

在这里,neo4j 查询可能返回 0 条记录,在这种情况下,我得到如下错误:

ERROR ApplicationMaster: User class threw exception: java.lang.RuntimeException: Cannot infer schema-types from empty result, please use loadDataFrame(schema: (String,String)*)
java.lang.RuntimeException: Cannot infer schema-types from empty result, please use loadDataFrame(schema: (String,String)*)
at org.neo4j.spark.Neo4j.loadDataFrame(Neo4j.scala:346) 

我想处理没有结果的情况。
我该怎么做?

标签: neo4japache-spark-sqlapache-spark-dataset

解决方案


如果您或其他人仍然有这个问题,我是如何解决的

var df = Neo4j.apply(sparkSession.sparkContext()).cypher("Match (n)-[r]-(m) return n.name as src, m.name as dst").loadDataFrame(schema = ("src","String"),("dst","String"))

推荐阅读