ToB企服应用市场:ToB评测及商务社交产业平台

标题: 怎样在Spark键值对数据中,对指定的Key进行输出/筛选/模式匹配 [打印本页]

作者: 雁过留声    时间: 2024-9-9 12:50
标题: 怎样在Spark键值对数据中,对指定的Key进行输出/筛选/模式匹配
在用键值对RDD进行操纵时,经常会遇到不知道怎样筛选出想要数据的情况,这里提供了一些办理方法


目录


1、对固定的Key数据进行查询

代码说明:
  1. import org.apache.spark.{SparkConf, SparkContext}
  2. object KeyFilterExample {
  3.   def main(args: Array[String]): Unit = {
  4.     // 初始化 SparkContext
  5.     val conf = new SparkConf().setAppName("Key Filter Example").setMaster("local[*]")
  6.     val sc = new SparkContext(conf)
  7.     // 创建一个示例 RDD,包含 key-value 键值对
  8.     val rdd = sc.parallelize(Seq(("a", 1), ("b", 2), ("c", 3), ("a", 4), ("b", 5)))
  9.     // 定义要筛选的特定 key
  10.     val specifiedKey = "a"
  11.     // 使用 filter 操作输出指定的 key 值
  12.     val filteredRdd = rdd.filter { case (key, _) => key == specifiedKey }
  13.     // 输出结果
  14.     filteredRdd.collect().foreach { case (key, value) =>
  15.       println(s"Key: $key, Value: $value")
  16.     }
  17.     // 停止 SparkContext
  18.     sc.stop()
  19.   }
  20. }
复制代码


2、对不固定的Key数据进行模糊查询

代码说明:
  1. import org.apache.spark.{SparkConf, SparkContext}
  2. object PatternMatchingKeyExample {
  3.   def main(args: Array[String]): Unit = {
  4.     // 初始化 SparkContext
  5.     val conf = new SparkConf().setAppName("Pattern Matching Key Example").setMaster("local[*]")
  6.     val sc = new SparkContext(conf)
  7.     // 创建一个示例 RDD,包含 key-value 键值对
  8.     val rdd = sc.parallelize(Seq(("apple", 1), ("banana", 2), ("apricot", 3),
  9.                                   ("berry", 4), ("avocado", 5)))
  10.     // 使用 filter 操作与模式匹配筛选以 'a' 开头的 keys
  11.     val patternMatchedRdd = rdd.filter {
  12.       case (key, _) if key.startsWith("a") => true
  13.       case _ => false
  14.     }
  15.     // 输出结果
  16.     patternMatchedRdd.collect().foreach { case (key, value) =>
  17.       println(s"Key: $key, Value: $value")
  18.     }
  19.     // 停止 SparkContext
  20.     sc.stop()
  21.   }
  22. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4