1、Transform操作RDD到RDD的转换
这里的Transform可不是前面的Transformations算子。
transform 操作允许在DStream上应用任意的RDD-to-RDD函数。它可以用于应用DStream API中没有公开的任何RDD操作。例如,DStream API中没有直接公开将数据流中的每个批处理与另一个数据集连接起来的功能。但是,您可以很容易地使用transform来实现这一点。这带来了非常强大的可能性。例如,可以通过将输入数据流与预先计算的垃圾邮件信息(也可以使用Spark生成)连接起来,然后根据这些信息进行过滤,从而进行实时数据清理。
package com.ruozedata.spark
import java.sql.DriverManager
import org.apache.spark.SparkConf
import org.apache.spark.streaming.{
Seconds, StreamingContext}
object TransformApp {
def main(args: Array[String]): Unit = {
val sparkConf=new SparkConf().setMaster("local[2]").setAppName("SocketWCApp")
val ssc=new StreamingContext(sparkConf,Seconds(10))
val lines=ssc.socketTextStream("vm01",8888)
//(17,ture)
val blacks=List("17")
val blacksRDD=ssc.sparkContext.parallelize(blacks).map(x=>(x,true))
//laoer,3,1 名字,年龄,性别
//(laoer,<laoer,3,1>)
val result=lines.map(x=