我目前正在使用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)