请编写Spark程序代码并提交虚拟机运行,要求读取spark路径下 /data/mllib/sample_kmeans_data.txt 文件,只保留double类型数据,并按照从小到大的顺序排列打印。
时间: 2024-02-24 07:57:48 浏览: 11
以下是您所需的代码:
```scala
import org.apache.spark.sql.SparkSession
object KMeansDataFilter {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("KMeansDataFilter")
.getOrCreate()
val kMeansData = spark.read.textFile("/data/mllib/sample_kmeans_data.txt")
val doubleData = kMeansData.flatMap(line => line.split(" "))
.filter(_.matches("-?\\d+(\\.\\d+)?"))
.map(_.toDouble)
val sortedData = doubleData.sortBy(x => x)
sortedData.collect().foreach(println)
spark.stop()
}
}
```
请将该代码保存为KMeansDataFilter.scala,然后在虚拟机上使用以下命令进行编译和运行:
```
$ spark-submit --class KMeansDataFilter --master yarn /path/to/KMeansDataFilter.jar
```
其中,/path/to/KMeansDataFilter.jar是您打包后的jar包路径。