java.lang.RuntimeException:无法从空结果推断模式类型,请使用 loadDataFrame(sc



我正在尝试使用 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) 

我想处理无结果情况。
我该怎么做?

如果您或其他人仍然遇到此问题,这是我如何解决的

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"))

也适用于:

 Neo4j myDF1= Neo4j.apply(sparkSession.sparkContext()).cypher(myquery, parameters);
        RDD<Row> rdd = myDF1.loadRowRdd();
         //System.out.println(rdd.isEmpty());
        if (!rdd.isEmpty()) {
            Dataset<Row> myDF= rdd.loadDataFrame();
myDF.createOrReplaceTempView("Mytable");
}

相关内容

  • 没有找到相关文章

最新更新