我正在提取可能包含空值的csv文件的列。因此,我需要先将这些空值转换为0,然后再调用toInt?

val field= sc.textFile("test.txt").map(_.split(",")(8))

我将如何实现这一目标?

样本数据如下:
3070811,1963,1096,,"US","CA",,1,
3022811,1963,1096,,"US","CA",,1,56
3033811,1963,1096,,"US","CA",,1,23

最佳答案

我只是将toInt转换设为“safe”,如下所示:

def safeToInt(s:String) = Try(s.toInt).getOrElse(0)
val field= sc.textFile("test.txt").map(entry => safeToInt(entry.split(",",-1)(8)))

关于scala - 根据SPARK scala中的条件处理RDD,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24395167/

10-13 08:18