import org.apache.spark.SparkContext
import org.apache.spark.sql.{DataFrame, Dataset, Row, SparkSession}
/**
* Author itcast
* Desc 演示StructuredStreaming的Source-Rate
*/
object Demo02_Source_Rate {
def main(args: Array[String]): Unit = {
//TODO 0.创建环境
//因为StructuredStreaming基于SparkSQL的且编程API/数据抽象是DataFrame/DataSet,所以这里创建SparkSession即可
val spark: SparkSession = SparkSession.builder().appName("sparksql").master("local[*]")
.config("spark.sql.shuffle.partitions", "4")//本次测试时将分区数设置小一点,实际开发中可以根据集群规模调整大小,默认200
.getOrCreate()
val sc: SparkContext = spark.sparkContext
sc.setLogLevel("WARN")
import spark.implicits._
//TODO 1.加载数据
val df: DataFrame = spark.readStream
.format("rate")
.option("rowsPerSecond", "10") //每秒生成数据条数
.option("rampUpTime", "0s") //每条数据生成间隔时间
.option("numPartitions", "2") //分区数目
.load()
//TODO 2.处理数据
//TODO 3.输出结果
df.writeStream
.format("console")
//Complete output mode not supported when there are no streaming aggregations
//.outputMode("complete")
.outputMode("append")
.option("truncate",false)//表示对列不进行截断,也就是对列内容全部展示
//TODO 4.启动并等待结束
.start()
.awaitTermination()
//TODO 5.关闭资源
spark.stop()
}
}
StructuredStreaming-Rate(测试学习使用)
最新推荐文章于 2024-01-22 20:47:21 发布