我正在运行Pregel Page rank算法 使用scala在Spark中使用Twitter数据。该算法运行正常,并给我输出正确找出最高页面排名得分。但是我无法在neo4j上保存图表。
输入和输出如下所述。
输入文件:(这些数字是推特用户ID)
86566510 15647839
86566510 197134784
86566510 183967095
15647839 11272122
15647839 10876852
197134784 34236703
183967095 20065583
11272122 197134784
34236703 18859819
20065583 91396874
20065583 86566510
20065583 63433165
20065583 29758446
图顶点的输出:
(11272122,0.75)
(34236703,1.0)
(10876852,0.75)
(18859819,1.0)
(15647839,0.6666666666666666)
(86566510,0.625)
(63433165,0.625)
(29758446,0.625)
(91396874,0.625)
(183967095,0.6666666666666666)
(197134784,1.1666666666666665)
(20065583,1.0)
使用下面的scala代码我尝试保存图表,但确实如此。请帮我解决这个问题。
Neo4jGraph.saveGraph(sc, pagerankGraph, nodeProp = "twitterId", relProp = "follows")
感谢。
答案 0 :(得分:1)
您是否最初从Neo4j加载图表?目前saveGraph通过内部id将图形数据保存回Neo4j节点。
它实际上运行了这个陈述:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
EditText yourEditText = new EditText(this);
layout.addView(yourEditText);
builder.setView(layout);
// Set up the buttons
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
final AlertDialog dialog = builder.create();
dialog.show();
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ("".equals(yourEditText.getText().toString().trim())) {
//this will stop your dialog from closing
yourEditText.setError("This field is required!");
return;
}
//you logic here
dialog.dismiss();
}
});
但作为短期缓解,我添加了可选的labelIdProp参数,用于代替内部id,以及匹配/合并标志。您必须自己构建库才能使用它。我将在接下来的几天推动更新。
您可以尝试的是UNWIND {data} as row
MATCH (n) WHERE id(n) = row.id
SET n.$nodeProp = row.value return count(*)
以下是测试代码。
您基本上拥有一个包含数据的数据框,并将其保存到Neo4j图表中(尽管包括关系)。
Neo4jDataFrame.mergeEdgeList