Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Spark数据加载问题_Scala_Apache Spark - Fatal编程技术网

Scala Spark数据加载问题

Scala Spark数据加载问题,scala,apache-spark,Scala,Apache Spark,在spark shell中执行以下操作时,我获得了IndexOutOfBoundException val input = sc.textFile("demo.txt") b.collect 上述两个功能都工作正常 val out = input.map(_.split(",")).map(r => r(1)) 正在获取上述行的边界异常 demo.txt如下所示:(标题:-姓名、性别、年龄) 与猪相同的文件是没有任何问题的工作 您可以自己尝试,只需启动Scala控制台并输入示例行即可

在spark shell中执行以下操作时,我获得了IndexOutOfBoundException

val input = sc.textFile("demo.txt")
b.collect 
上述两个功能都工作正常

val out = input.map(_.split(",")).map(r => r(1))
正在获取上述行的边界异常

demo.txt如下所示:(标题:-姓名、性别、年龄)


与猪相同的文件是没有任何问题的工作

您可以自己尝试,只需启动Scala控制台并输入示例行即可

scala> "Danial,,14".split(",")
res0: Array[String] = Array(Danial, "", 14)

scala> ",Male,18".split(",")
res1: Array[String] = Array("", Male, 18)

scala> "Hema,,".split(",")
res2: Array[String] = Array(Hema)
哎呀,最后一行不行了。添加要拆分的预期列数:

scala> "Hema,,".split(",", 3)
res3: Array[String] = Array(Hema, "", "")

或者更好,编写一个真正的解析器。String.split不适用于生产代码。

什么是
b
?无论如何,你可能有一个空行<代码>b.filter(u.nonEmpty)输入错误!!键入b而不是“输入”。输入文件没有任何空行。即使在包含过滤条件后也会出现相同的错误:input.filter(.nonEmpty).map(.split(“,”).map(r=>r(1)).collectThank@Marius!!当我指定预期的列数时,它工作得很好。是的,同意你的观点自定义解析器是最好的解决方案。你也可以用-1代替3作为参数。
scala> "Hema,,".split(",", 3)
res3: Array[String] = Array(Hema, "", "")