Исчезновение разрядов или водосливное исключение во время отладки

Отказ от ответственности: это предназначено только для отображения возможностей фильтрации каналов GraphFrames.

Ну, теоретически это возможно. Вы можете использовать шаблоны GraphFrames для поиска путей. Предположим, что ваши данные выглядят следующим образом:

import org.graphframes.GraphFrame

val nodes = "abcdefghij".map(c =>Tuple1(c.toString)).toDF("id")

val edges = Seq(
   // Long path
  ("a", "b"), ("b", "c"), ("c", "d"),  ("d", "e"), ("e", "f"),
  // and some random nodes
  ("g", "h"), ("i", "j"), ("j", "i")
).toDF("src", "dst")

val gf = GraphFrame(nodes, edges)

и вы хотите найти все пути с не менее чем 5 узлами.

Вы можете построить следующий шаблон пути:

val path = (1 to 4).map(i => s"(n$i)-[e$i]->(n${i + 1})").mkString(";")
// (n1)-[e1]->(n2);(n2)-[e2]->(n3);(n3)-[e3]->(n4);(n4)-[e4]->(n5)

и выражение фильтра, чтобы избежать циклов:

val expr = (1 to 5).map(i => s"n$i").combinations(2).map {
  case Seq(i, j) => col(i) !== col(j)
}.reduce(_ && _)

Наконец быстрая проверка:

gf.find(path).where(expr).show
// +-----+---+---+-----+---+-----+---+-----+---+
// |   e1| n1| n2|   e2| n3|   e3| n4|   e4| n5|
// +-----+---+---+-----+---+-----+---+-----+---+
// |[a,b]|[a]|[b]|[b,c]|[c]|[c,d]|[d]|[d,e]|[e]|
// |[b,c]|[b]|[c]|[c,d]|[d]|[d,e]|[e]|[e,f]|[f]|
// +-----+---+---+-----+---+-----+---+-----+---+

10
задан 11 revs, 3 users 97% 23 May 2017 в 10:27
поделиться

2 ответа

отладочная версия связанного dll могла быть скомпилирована с передачей сигналов nan поддержка, видеть http://blogs.msdn.com/oldnewthing/archive/2008/07/02/8679191.aspx для примера этой проблемы.

это heisenbug был вызван неинициализированными переменными, здесь мог быть связанный dll активация snan опции CPU и упущения отключить его после возврата

1
ответ дан 4 December 2019 в 04:37
поделиться

Ошибки происходят, все еще происходят, если Вы присоединяете отладчик после запущения приложения?

1
ответ дан 4 December 2019 в 04:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: