为什么这不起作用的任何想法?
val m = sc.union(sc.parallelize(0 until 10).map(n => sc.parallelize(n until 20))).collect()
我知道还有其他方法可以做到这一点,但我更感兴趣的是它为什么不起作用。
答案 0 :(得分:1)
这里的问题是你试图从动作或转换中运行的代码内部调用SparkContext上的方法(在这种情况下sc.parallelize
调用内的map
调用) 。 SparkContext方法只能从驱动程序调用,而不能在Spark执行程序中运行的代码内部调用(例如操作和转换)。
我有一个Spark pull请求,可以在这种情况下添加更好的错误消息:https://github.com/apache/spark/pull/3884。
另请参阅:NullPointerException in Scala Spark, appears to be caused be collection type?