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,我文件的内容是 0001,02,003 004,0005,06 0007,8,9 我把文件读作 val file1 = spark.read.textFile("file1").map( x => x.toLowerCase()) file1.collect res7: Array[String] = Array(0001,02,003, 004,0005,06, 0007,8,9) 我想删除前导零。 我知道我们使用ltrim,但它只在字符串删除空格的情况下使用。只要将

我文件的内容是

0001,02,003
004,0005,06
0007,8,9   
我把文件读作

val file1 = spark.read.textFile("file1").map( x => x.toLowerCase())

file1.collect
    res7: Array[String] = Array(0001,02,003, 004,0005,06, 0007,8,9)
我想删除前导零。
我知道我们使用ltrim,但它只在字符串删除空格的情况下使用。

只要将它们转换为
Int
,就可以了

val file1 = spark.sparkContext.textFile("file1").map( x => x.split(",").map(_.trim.toInt).mkString(","))
file1.collect
//res0: Array[String] = Array(1,2,3, 4,5,6, 7,8,9)

很高兴听到@poojais有一种方法可以仅从每行的第一个元素中删除前导零,并保持其余数据相同只要将拆分数组的第一个元素转换为int,您就可以得到您想要的结果。请帮助我了解语法。.我使用的代码和得到的错误是val file2=file1.map(x=>x.split(“,”).map(y=>y(0).trim.toInt).mkString(“,”):47:错误:value trim不是Char val file2=file1.map的成员(x=>x.split(“,”).map(y=>y(0).trim.toInt.mkString(“,”)^
val file1=spark.sparkContext.textFile(“file1”).map(x=>(“,”;splitted.head.toInt+”,“+splitted.tail.mkString(“,”})
就这些,您应该没事了