StructuredStreaming (二)——kafka

将数据从kafka的某个主题中抽取出来,再将数据放入另一个主题中

一、导入jar包

通过百度网盘分享的文件:python-kafka

链接:https://pan.baidu.com/s/1q2UlOJFBNNuhRC87AlAACg?pwd=c6dy

提取码:c6dy

将这六个jar包放入本地pyspark中jars下

二、案例编写

首先需要生成数据,将数据源源不断的导入topicA中,再使用spark读取kafka中的数据,然后将清洗过的数据导入etlTopic中

复制代码
import os

from pyspark.sql import SparkSession
from pyspark.sql.functions import explode
import pyspark.sql.functions as F

if __name__ == '__main__':
    os.environ['JAVA_HOME'] = 'E:/java-configuration/jdk-8'
    # 配置Hadoop的路径,就是前面解压的那个路径
    os.environ['HADOOP_HOME'] = 'E:/applications/bigdata_config/hadoop-3.3.1/hadoop-3.3.1'
    # 配置base环境Python解析器的路径
    os.environ['PYSPARK_PYTHON'] = 'C:/Users/35741/miniconda3/python.exe'
    # 配置base环境Python解析器的路径
    os.environ['PYSPARK_DRIVER_PYTHON'] = 'C:/Users/35741/miniconda3/python.exe'

    # 创建一个sparkSession对象
    spark = SparkSession.builder.appName("kafkaDemo").getOrCreate()

    kafkaDf = spark \
        .readStream \
        .format("kafka") \
        .option("kafka.bootstrap.servers", "bigdata01:9092") \
        .option("subscribe", "topicA") \
        .option("startingOffsets", "latest") \
        .load()
    # 这个就是为了 筛出想要的数据
    dataDf = kafkaDf.selectExpr("CAST(value AS STRING)")
    dataDf.createOrReplaceTempView("tmp")
    etlDf = spark.sql("""
    select * from tmp where value like "%success%"
    """)

    etlDf.writeStream \
        .format("kafka") \
        .option("kafka.bootstrap.servers", "bigdata01:9092") \
        .option("topic", "etlTopic") \
        .option("checkpointLocation", "../../resources/ckp") \
        .start().awaitTermination()

    spark.stop()
相关推荐
狮恒7 小时前
OpenHarmony Flutter 分布式数据管理:跨设备数据同步与一致性保障方案
分布式·flutter·wpf·openharmony
課代表8 小时前
bat 批处理从文本文件自动创建文件夹
自动化·脚本·bat·批处理·txt·文件编码·文件夹创建
B站计算机毕业设计之家9 小时前
基于大数据热门旅游景点数据分析可视化平台 数据大屏 Flask框架 Echarts可视化大屏
大数据·爬虫·python·机器学习·数据分析·spark·旅游
ZePingPingZe10 小时前
浅谈接口幂等性、MQ消费幂等性
分布式·java-rocketmq
Wang's Blog10 小时前
RabbitMQ: 高并发外卖系统的微服务架构设计与工程实现
分布式·微服务·rabbitmq
墨香幽梦客14 小时前
合规视角的数据安全与隐私:HIPAA等法规的架构内生化实践
java·分布式·微服务
znhy605814 小时前
分布计算系统
网络·分布式
狮恒14 小时前
OpenHarmony Flutter 分布式设备发现与连接:无感组网与设备协同管理方案
分布式·flutter·wpf·openharmony
Wang's Blog16 小时前
RabbitMQ: 消息交换机制的核心原理与实践指南之基于 AMQP 协议的系统设计与工程实现
分布式·rabbitmq
狮恒16 小时前
OpenHarmony Flutter 分布式音视频:跨设备流传输与实时协同交互方案
分布式·flutter·wpf·openharmony