将GraphFrame用于连通组件

时间:2017-06-13 04:08:28

标签: apache-spark pyspark graphframes

我目前正在使用GraphFrames从图表中检索连接的组件。

我的代码非常简单如下:

v = sqlContext.createDataFrame(node,["id","name"])
print v.take(15)
e = sqlContext.createDataFrame(edge,["src","dst"])
print e.take(15)
g = GraphFrame(v,e)
# NullPointerException comes from connectedComponents function
res = g.connectedComponents()

下面是代码片段的输出,对我来说似乎也没问题。

打印顶点:

[Row(id=6, name=u'6'), Row(id=12, name=u'12'), Row(id=1, name=u'1'), Row(id=3, name=u'3'), Row(id=9, name=u'9'), Row(id=2, name=u'2'), Row(id=11, name=u'11'), Row(id=10, name=u'10'), Row(id=5, name=u'5'), Row(id=4, name=u'4')]

打印边缘:

[Row(src=2, dst=9), Row(src=2, dst=5), Row(src=2, dst=6), Row(src=9, dst=10), Row(src=11, dst=12), Row(src=4, dst=10), Row(src=1, dst=2), Row(src=1, dst=3), Row(src=1, dst=12)]

但是,当执行g.connectedComponents()时,程序开始提供以下NullPointerException。

欢迎任何有关此处出现问题的建议!

  

错误LiveListenerBus:侦听器JobProgressListener引发了异常   java.lang.NullPointerException at   org.apache.spark.ui.jobs.JobProgressListener $$ anonfun $ onTaskEnd $ 1.适用(JobProgressListener.scala:361)     在   org.apache.spark.ui.jobs.JobProgressListener $$ anonfun $ onTaskEnd $ 1.适用(JobProgressListener.scala:360)     在scala.collection.immutable.List.foreach(List.scala:318)at   scala.collection.generic.TraversableForwarder $ class.foreach(TraversableForwarder.scala:32)     在scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:45)     在   org.apache.spark.ui.jobs.JobProgressListener.onTaskEnd(JobProgressListener.scala:360)     在   org.apache.spark.scheduler.SparkListenerBus $ class.onPostEvent(SparkListenerBus.scala:42)     在   org.apache.spark.scheduler.LiveListenerBus.onPostEvent(LiveListenerBus.scala:31)     在   org.apache.spark.scheduler.LiveListenerBus.onPostEvent(LiveListenerBus.scala:31)     在   org.apache.spark.util.ListenerBus $ class.postToAll(ListenerBus.scala:55)     在   org.apache.spark.util.AsynchronousListenerBus.postToAll(AsynchronousListenerBus.scala:37)     在   org.apache.spark.util.AsynchronousListenerBus $$不久$ 1 $$ anonfun $运行$ 1 $$ anonfun $ $应用MCV $ SP $ 1.适用$ MCV $ SP(AsynchronousListenerBus.scala:80)     在   org.apache.spark.util.AsynchronousListenerBus $$不久$ 1 $$ anonfun $运行$ 1 $$ anonfun $ $应用MCV $ SP $ 1.适用(AsynchronousListenerBus.scala:65)     在   org.apache.spark.util.AsynchronousListenerBus $$不久$ 1 $$ anonfun $运行$ 1 $$ anonfun $ $应用MCV $ SP $ 1.适用(AsynchronousListenerBus.scala:65)     在scala.util.DynamicVariable.withValue(DynamicVariable.scala:57)at   org.apache.spark.util.AsynchronousListenerBus $$匿名$ $$ 1 $ anonfun运行$ $ 1.适用MCV $ SP(AsynchronousListenerBus.scala:64)     在   org.apache.spark.util.Utils $ .tryOrStopSparkContext(Utils.scala:1183)     在   org.apache.spark.util.AsynchronousListenerBus $$匿名$ 1.run(AsynchronousListenerBus.scala:63)

0 个答案:

没有答案