如何忽略数据库中缺少字段的行

时间:2014-10-28 15:52:13

标签: database scala bigdata apache-spark

因此,我正在关注spark using scala上的教程,并使用this dataset from wikimedia。我有兴趣按语言生成总页面浏览量的直方图。第一列是语言,第三列是页面视图。但是,似乎该数据库中的某些行没有第三列的任何字段,因为当我运行以下代码时出现ArrayIndexOutOfBondException错误。

scala> val tuples = pagecounts.map(line => line.split(" "))
scala> val keyValuePairs = tuples.map(line => (line(0).substring(0, 2), 
  line(2).toInt))
scala> keyValuePairs.reduceByKey(_+_, 1).collect

有没有人有一个想法,如何忽略第三列缺少字段的行,这样我只能对那些包含数据库中第三列字段的行运行查询?

1 个答案:

答案 0 :(得分:2)

您希望过滤页面计数,以便仅对具有3个字段的页面进行操作。使用filter选择那些:

val tuples = pagecounts.map(line => line.split(" ").filter(_.length == 3))