两个 Spark 结构化流式处理作业无法写入相同的基本路径



Spark 结构化流不允许两个结构化流作业将数据写入同一个基本目录,而使用 dstream 可以实现。

由于默认情况下将为一个作业创建_spark_metadata目录,因此第二个作业不能使用与_spark_metadata目录由其他作业创建的相同目录作为基本路径,因此会引发异常。

除了为两个作业创建单独的基本路径之外,是否有任何解决方法。

是否可以在其他位置创建_spark_metadata目录或禁用而不会丢失任何数据。

如果我必须更改两个作业的基本路径,那么我的整个框架都会受到影响,所以我不想这样做。

不可以,尚无法更改元数据目录名称或位置。 您可以参考此链接以获取更多信息。

您能否解释为什么您必须更改项目的模型以更改路径。路径是否硬编码?或者您是否以特定方式读取此数据,不会受到影响?

编辑 1:您可以在此处使用分区。例如,如果数据存储为镶木地板,则可以在基本路径中包含分区。您可以添加具有数据源的列"src",例如 SW1 表示流编写器 1,SW2 表示流编写器 2。

这些将在 hdfs 中具有以下路径:

  1. /src=SW1
  2. /src=SW2

现在,每个作业都可以直接写入其相应的分区,其他作业可以继续从基本路径读取。

最新更新