大数据全系列 教程
1869个小节阅读:465.4k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
根据元组中的第二值进行升序排序,并分为3个分区
根据元组中的第二值进行升序排序,并分为1个分区
根据元组中的第一值进行降序排序,并分为1个分区
xxxxxxxxxx
package com.itbaizhan.rdd
//1.导入类
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object RddSortBy {
def main(args: Array[String]): Unit = {
//2.构建SparkConf对象,并设置本地运行和程序名称
val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("groupByKey")
//3.使用conf对象构建SparkContet对象
val sc = new SparkContext(conf)
//5.创建Key-Value型Rdd
val rdd: RDD[(Char, Int)] = sc.parallelize(List(('w', 2), ('h', 5), ('k', 9), ('m', 3),('a', 7),
('p', 4), ('q', 1), ('n', 8), ('y', 6)))
//6.使用sortBy对rdd按照元祖的第二个值进行排序
/*f: (T) => K,指定按照第几个元素记进行排序
ascending: Boolean = true,true表示升序,false表示降序,默认就是true升序
numPartitions: Int = this.partitions.length排序的分区数,默认为rdd的分区数*/
val result1: Array[Array[(Char, Int)]] = rdd.sortBy(tup => tup._2,
ascending = true, numPartitions = 3).glom().collect()
result1.foreach(arr=>println(arr.mkString(",")))
//7.全局有序,排序后的分区数设置为1
val result2: Array[(Char, Int)] = rdd.sortBy(tup => tup._2,
ascending = true, numPartitions = 1).collect()
println(result2.mkString(","))
//8按照元祖的第一个元素进行降序排序
val result3: Array[(Char, Int)] = rdd.sortBy(tup => tup._1,
ascending = false, numPartitions = 1).collect()
println(result3.mkString(","))
//4.关闭sc对象
sc.stop()
}
}
实时效果反馈
1. 以下代码中哪个选项表示"根据元组中的第一值进行降序排序,并分为1个分区":
A rdd.sortBy(tup => tup._2, ascending = true, numPartitions = 3)
B rdd.sortBy(tup => tup._1,ascending = true, numPartitions = 1)
C rdd.sortBy(tup => tup._1,ascending = false, numPartitions = 1)
答案:
1=>C