У меня есть 2 больших фрейма данных, edge
и vertex
, и я знаю, что они должны быть в специальных типах Vertex
и Edge
RDD, но в каждом учебнике, который я нашел, указаны Edge
иVertex
СДР в виде массивов от 3 до 10 предметов.Мне нужно, чтобы они напрямую перешли из существенного СДР.Как бы я изменил тип данных / обычный RDD на правильный тип?
Я следовал примеру здесь: https://spark.apache.org/docs/latest/graphx-programming-guide.html#example-property-graph, но он перечисляет все отношения, и в моем случае их много.
edge
df имеет 3 столбца, (sourceID, destID, отношение)
vertex
df имеет 2 столбца (ID, имя)
То, что я пробовал до сих пор:
val vertex: RDD[(VertexId, String)] = sc.parallelize((vertexDF("ID"), vertexDF("Name")))
Возвращает ошибку:
error: type mismatch;
found : (org.apache.spark.sql.Column, org.apache.spark.sql.Column)
required: Seq[(org.apache.spark.graphx.VertexId, String)]
(which expands to) Seq[(Long, String)]
Как изменить фрейм данных / обычный RDDв специализированные типы вершин / ребер RDD?