Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何在使用Spark结构化流媒体从目录读取时实现一次处理?_Apache Spark_Apache Kafka_Spark Structured Streaming - Fatal编程技术网

Apache spark 如何在使用Spark结构化流媒体从目录读取时实现一次处理?

Apache spark 如何在使用Spark结构化流媒体从目录读取时实现一次处理?,apache-spark,apache-kafka,spark-structured-streaming,Apache Spark,Apache Kafka,Spark Structured Streaming,我想使用流处理的概念从本地目录读取文件,然后发布到ApacheKafka。我考虑过使用Spark结构化流媒体 在读取50行文件后流传输失败时,检查点是如何实现的。下次启动时,它是从文件的第51行开始,还是从文件的开头再次读取 此外,如果在代码中有任何升级或更改时,在结构化流中使用检查点,我们会遇到任何问题 读取50行文件后流式传输失败时。下次启动时,它将从文件的第51行开始,还是从文件的开头再次读取 要么整个文件已完全处理,要么根本没有处理。这就是FileFormat在Spark SQL中通常的

我想使用流处理的概念从本地目录读取文件,然后发布到ApacheKafka。我考虑过使用Spark结构化流媒体

在读取50行文件后流传输失败时,检查点是如何实现的。下次启动时,它是从文件的第51行开始,还是从文件的开头再次读取

此外,如果在代码中有任何升级或更改时,在结构化流中使用检查点,我们会遇到任何问题

读取50行文件后流式传输失败时。下次启动时,它将从文件的第51行开始,还是从文件的开头再次读取

要么整个文件已完全处理,要么根本没有处理。这就是FileFormat在Spark SQL中通常的工作方式,特别是与Spark结构化流媒体无关(因为它们共享底层执行基础架构)

简言之,引擎“将再次从文件开头读取。”

也就是说,在Spark结构化流媒体中处理文件时,没有单行的概念。您一次处理一个流数据帧,该流数据帧是一个完整的文件(甚至是两个文件),您是想逐行处理数据集还是完整地处理数据集取决于您,Spark开发人员

此外,如果在代码中有任何升级或更改时,在结构化流中使用检查点,我们会遇到任何问题

理论上,你不应该这样做。Spark结构化流媒体中的新检查点机制(与传统Spark流媒体相比)的目的是允许以更舒适的方式重新启动和升级。检查点只使用少量信息(通常存储在JSON文件中)从最后一个成功的检查点开始重新启动处理