Я пытаюсь рассчитать индекс отношений AdamicAdar в следующем графике социальных сетей. Я настроил свои ребра, вершины, набор данных и график, используя библиотеку apache flink-gelly. Вот мой код:
import org.apache.flink.api.java.ExecutionEnvironment;
import org.apache.flink.api.java.operators.DataSource;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.graph.Graph;
import org.apache.flink.graph.library.similarity.AdamicAdar;
import org.apache.flink.types.NullValue;
import org.apache.flink.types.StringValue;
import java.util.List;
public class MyMain {
public static void main(String[] args) {
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
DataSource> edgeDataSet = env.
readCsvFile(String.valueOf(MyMain.class.getResource("dataset/edges.csv"))).
types(StringValue.class, StringValue.class);
Graph graph = Graph.fromTuple2DataSet(edgeDataSet, env);
List list = null;
try {
list = graph.run(new AdamicAdar()).collect();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(list.get(0));
}
}
и вот ошибка, которую я получаю:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.flink.configuration.ConfigUtils.decodeListFromConfig(Lorg/apache/flink/configuration/ReadableConfig;Lorg/apache/flink/configuration/ConfigOption;Lorg/apache/flink/util/function/FunctionWithException;)Ljava/util/List;
at org.apache.flink.client.cli.ExecutionConfigAccessor.getJars(ExecutionConfigAccessor.java:75)
at org.apache.flink.client.deployment.executors.PipelineExecutorUtils.getJobGraph(PipelineExecutorUtils.java:61)
at org.apache.flink.client.deployment.executors.LocalExecutor.getJobGraph(LocalExecutor.java:98)
at org.apache.flink.client.deployment.executors.LocalExecutor.execute(LocalExecutor.java:79)
at org.apache.flink.api.java.ExecutionEnvironment.executeAsync(ExecutionEnvironment.java:962)
at org.apache.flink.api.java.ExecutionEnvironment.execute(ExecutionEnvironment.java:878)
at org.apache.flink.api.java.ExecutionEnvironment.execute(ExecutionEnvironment.java:862)
at org.apache.flink.api.java.DataSet.collect(DataSet.java:413)
at MyMain.main(MyMain.java:23)
Process finished with exit code 1
Также это часть файла edge.csv, который я использую:
5 122
5 156
5 158
5 169
5 180
5 187
5 204
5 213
5 235
5 315
5 316
6 89
6 95
6 147
6 219
6 319
7 22
где 5 316 означает, что вершина номер пять соединена с вершиной номер 216, и это определяет ребро.
А вот мой файл pom.xml pom.xml
pom.xml
/gradle.build
? Это определенно проблема конфликта библиотек. Кроме того, не могли бы вы указать, как вы запускаете приложение? Спасибо - person Mikalai Lushchytski   schedule 10.09.2020flink-clients_2.12
наflink-clients_2.11
. - person Mikalai Lushchytski   schedule 11.09.2020flink-shaded
, но кажется, чтоflink-shaded-asm-7
должна быть версии7.1-11.0
- person Mikalai Lushchytski   schedule 11.09.2020mvn dependency:tree -Dverbose -Dincludes=flink-core
? - person Mikalai Lushchytski   schedule 11.09.2020