.contains在rdd中给出空字符串

时间:2017-02-11 05:36:36

标签: scala apache-spark

我有一个名为id的id数组。我有一个名为r的RDD,它作为一个名为idval的字段,可能在id数组中有一些id。我想只获取此数组中的行。我正在使用

val new_r = r.filter(x => r.contains(x.idval)

但是,当我去做时

new_r.take(10).foreach(println) 

我得到NumberFormatException: empty String

包含空字符串吗?

以下是RDD中的行示例:

idval,part,date,sign
1,'leg',2011-01-01,1.0 
18,'arm',2013-01-01,1.0 
6, 'nose', 2011-01-01,1.0 

我有一个带有id的单独数组,如[1,3,4,5,18,...],我想提取上面有idid在ids中的RDD的行

所以过滤这个应该给我

idval,part,date,sign
1,'leg',2011-01-01,1.0 
18,'arm',2013-01-01,1.0 

因为idval 1和18在上面的数组中。

问题是当我转到foreach(println)新过滤数组中的行时,我收到此空字符串错误。

从csv文件(loadFromUrl)加载RDD,然后映射

val r1 = rdd.map(s=>s.split(","))

val r2 = r1.map(p=>Event(s(0), p(1),dateFormat.parse(p(2).asInstanceOf[String]), p(3).toDouble))

0 个答案:

没有答案