我目前正在使用 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。
将不胜感激任何关于这里出了什么问题的建议!
ERROR LiveListenerBus: Listener JobProgressListener 在 org.apache.spark.ui.jobs.JobProgressListener$$anonfun$onTaskEnd$1.apply(JobProgressListener.scala:361) 在 org.apache.spark.ui.jobs 抛出异常 java.lang.NullPointerException .JobProgressListener$$anonfun$onTaskEnd$1.apply(JobProgressListener.scala:360) at scala.collection.immutable.List.foreach(List.scala:318) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala :32) 在 org.apache.spark.ui.jobs.JobProgressListener.onTaskEnd(JobProgressListener.scala:360) 在 org.apache.spark.scheduler 的 scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:45)。 SparkListenerBus$class.onPostEvent(SparkListenerBus.scala:42) at org.apache.spark.scheduler.LiveListenerBus.onPostEvent(LiveListenerBus.scala:31) at org.org.apache.spark.util.ListenerBus$class.postToAll(ListenerBus.scala:55) 上的 apache.spark.scheduler.LiveListenerBus.onPostEvent(LiveListenerBus.scala:31) org.apache.spark.util.AsynchronousListenerBus.postToAll( AsynchronousListenerBus.scala:37) at org.apache.spark.util.AsynchronousListenerBus$$anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(AsynchronousListenerBus.scala:80) at org.apache.spark.util.AsynchronousListenerBus$$anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply(AsynchronousListenerBus.scala:65) at org.apache.spark.util.AsynchronousListenerBus$$ anon$1$$anonfun$run$1$$anonfun$apply$mcV$sp$1.apply(AsynchronousListenerBus.scala:65) at scala.util.DynamicVariable.withValue(DynamicVariable.scala:57) at org.apache.spark.util .AsynchronousListenerBus$$anon$1$$anonfun$run$1。apply$mcV$sp(AsynchronousListenerBus.scala:64) at org.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1183) at org.apache.spark.util.AsynchronousListenerBus$$anon$1.run(AsynchronousListenerBus .scala:63)