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