请编写Spark程序代码并提交虚拟机运行,要求读取spark路径下 /data/mllib/sample_kmeans_data.txt 文件,只保留double类型数据,并按照从小到大的顺序排列打印。
时间: 2024-02-25 10:57:47 浏览: 151
好的,下面是Spark程序的代码:
```scala
import org.apache.spark.sql.SparkSession
object SortDoubleData {
def main(args: Array[String]): Unit = {
val spark = SparkSession
.builder()
.appName("SortDoubleData")
.getOrCreate()
val data = spark.read.textFile("/data/mllib/sample_kmeans_data.txt").rdd
.flatMap(_.split(" "))
.map(_.toDouble)
.filter(_ > 0.0)
.sortBy(x => x)
data.collect().foreach(println)
spark.stop()
}
}
```
这段代码使用Spark读取/sample_kmeans_data.txt文件,并将文本文件转换为RDD。接着,我们使用flatMap将每一行的数据分开,然后使用map将数据转换为Double类型。由于我们只想保留double类型数据,因此我们使用filter方法过滤掉小于等于0的值。最后,我们使用sortBy方法将数据从小到大排序,并使用collect方法将结果打印出来。
将上述代码保存为SortDoubleData.scala文件后,我们可以使用以下命令编译和运行程序:
```shell
$ spark-submit --class SortDoubleData --master yarn SortDoubleData.jar
```
其中,SortDoubleData.jar是我们打包好的程序包。这样,程序就会在虚拟机上运行,并按照从小到大的顺序打印出double类型的数据。
阅读全文