采用老版本spark(1.6)在离线批处理环境下,将DataFrame快速写入kafka,通常可以查到的大部分都是针对Spark-Streaming进行Kafka写入的说明,但是
在离线批处理环境下,也希望将批量计算的DataFrame中的数据直接写入到某个topic中,在spark2.0以上,可以直接采用spark-streaming的写入方式,只要
用read 代替 resdStream 和用 write代替 writeStream 即可。
例如,引入以下同步kafka的包
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql-kafka-0-10_2.11</artifactId>
<version>2.4.0</version>
</dependency>
然后可以按以下方式写入kafka
package com.sparkbyexamples.spark.streaming.batch
import org.apache.spark.sql.SparkSession
object WriteDataFrameToKafka {
def main(args: Array[String]): Unit = {
val spark: SparkSession = SparkSession.builder()
.master("local[1]")
.appName("SparkByExamples.com")
.getOrCreate()
val data = Seq (("iphone", "2007"),("iphone 3G","2008"),
("iphone 3GS","2009"),
("iphone 4","2010"),
("iphone 4S","2011"),
("i

最低0.47元/天 解锁文章
532

被折叠的 条评论
为什么被折叠?



