我有一个火花流Dataset<Row>
,它可以流csv文件的目录。
所以我有这些问题:
答案 0 :(得分:0)
您可以使用缓存或持久性功能来缓存流数据,如下所示
dstream.persist()
仅当您多次使用流时才执行此操作。对于reducebywindow
和reducebyKeyandWindow
操作,这是自动完成的。
在流作业中,要使作业保持运行状态,您需要启动Spark流上下文并启动该上下文
val ssc = new StreamingContext(sc, Seconds(1))
// your logic goes here
ssc.start()
如果您的工作在运行数小时后被杀死(并且集群已被内核化),请检查kerberos票证是否即将到期。这可能会导致长时间运行的作业失败。
编辑: 注意:如果您专门谈论结构化流。不支持在流数据集上进行缓存。请查看此帖子Why does using cache on streaming Datasets fail with "AnalysisException: Queries with streaming sources must be executed with writeStream.start()"?