繁体   English   中英

如何将Spark Streaming与Tensorflow集成?

[英]How to integrate Spark Streaming with Tensorflow?

目标:持续将嗅探到的网络程序包馈入Kafka Producer,并将其连接到Spark Streaming以能够处理程序包数据,然后,使用Tensorflow或Keras中的预处理数据。

我正在使用来自Kafka的Spark Streaming(PySpark)处理连续数据,现在我想将处理后的数据发送到Tensorflow。 如何使用Python在Tensorflow中使用这些转换的DStream? 谢谢。

目前在Spark Streaming中未应用任何处理,但稍后会添加。 这是py代码:

import sys
from pyspark import SparkContext
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils
from pyspark.conf import SparkConf
from datetime import datetime

if __name__ == '__main__':
    sc = SparkContext(appName='Kafkas')
    ssc = StreamingContext(sc, 2)
    brokers, topic = sys.argv[1:]
    kvs = KafkaUtils.createDirectStream(ssc, [topic], 
                                       {'metadata.broker.list': brokers})
    lines = kvs.map(lambda x: x[1])
    lines.pprint()
    ssc.start()
    ssc.awaitTermination()

我也用它来启动火花流:

spark-submit --packages org.apache.spark:spark-streaming-kafka-0–8_2.11:2.0.0 
spark-kafka.py localhost:9092 topic

您有两种方法可以解决问题:

  1. 处理完数据后,您可以保存它们,然后独立运行模型(在Keras中)。 只需创建一个实木复合地板文件/如果已经存在,则追加到该文件:

     if os.path.isdir(DATA_TREATED_PATH): data.write.mode('append').parquet(DATA_TREATED) else: data.write.parquet(DATA_TREATED_PATH) 

然后,您仅使用keras / tensorflow创建模型,并可能像每小时一样运行它? 或您想要更新的时间。 因此,这是从头开始的。

  1. 您可以处理数据,像以前一样保存它们,但是此后,您可以加载模型,训练新数据/新批次,然后保存模型。 之所以称为在线学习,是因为您不必从头开始运行模型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM