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
Spark中的订购(Scala)_Scala_Apache Spark - Fatal编程技术网

Spark中的订购(Scala)

Spark中的订购(Scala),scala,apache-spark,Scala,Apache Spark,我正在读取CSV文件,我只需要整个CSV文件中的某些字段。我的命令如下: val readfile = sc.textFile("path").map(m=>m.split(",").filterNot(._startsWith("NA"))) val required_fields = readfile.map(x=>(x(0),x(1),x(2),x(8),x(15),x(16),x(17))) 现在我想将第15列的类型从String改为Double。所以我就这样做了,

我正在读取CSV文件,我只需要整个CSV文件中的某些字段。我的命令如下:

val readfile = sc.textFile("path").map(m=>m.split(",").filterNot(._startsWith("NA")))    
val required_fields = readfile.map(x=>(x(0),x(1),x(2),x(8),x(15),x(16),x(17)))
现在我想将第15列的类型从String改为Double。所以我就这样做了,

val myDouble = required_fields.map(x=>(x._1,x._2,x._3,x._8,x._15.toDouble,x._16,x._17))
现在我只需要从第15列中获取前10个值,所以我使用了takeOrdered函数

myDouble.takeOrdered(10)(Ordering[Double].on(x=>(-x._5)))
但当我运行最后一个命令时,我得到了ArrayIndexOutOfBound异常17

请帮帮我。 谢谢

第二行相当于

val required_fields = readfile.map(x=> Tuple7(x(0),x(1),x(2),x(8),x(15),x(16),x(17)))
也就是说,元组有7个字段

你的问题就在这里

myDouble = required_fields.map(x=>(x._1,x._2,x._3,x._8,x._15.toDouble,x._16,x._17))

您期望的元组字段\u8、\u15、\u16、\u17
Tuple7(…)
上不存在,这意味着它只有7个字段,但您使用的最多是
\u17
。我想知道,
myDouble=required\ufields.map(x=>(x.\u1,x.\u2,x.\u3,x.\u8,x.\u15.toDouble,x.\u16,x.\u17))

您能分享一些示例数据吗?
myDouble = required_fields.map(x=>(x._1,x._2,x._3,x._8,x._15.toDouble,x._16,x._17))