如何使用RDD collect方法以数组格式处理RDD的每一行?

时间:2015-07-09 14:38:51

标签: scala apache-spark

//making an RDD 
val logData = sc.textFile(sampleData).cache()

//making logDataArray[String] 
 var logDataArray = logData.collect;

但它给我一个错误:

java.lang.NullPointerException
    at org.apache.spark.rdd.RDD.collect(RDD.scala:717)
    at com.Travel$.com$Travel$$isConnected$1(Travel.scala:58)

在使用logData.collect之前,我已将logData的大小检查为println(logData.count)。它给出了1168个记录大小。

1 个答案:

答案 0 :(得分:0)

如果您在某个函数中编写此行(var logDataArray = logData.collect),则sc可能不在范围内并且变为null。此外,每次调用函数时,都将执行collect方法。

尝试在函数外添加行,即。直接在main方法中。 它对我有用。