Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 具有多个kafka簇的Spark结构化流_Apache Spark - Fatal编程技术网

Apache spark 具有多个kafka簇的Spark结构化流

Apache spark 具有多个kafka簇的Spark结构化流,apache-spark,Apache Spark,我试图从不同集群的多个主题中获得一些关于spark结构化流媒体和阅读的基本信息。我找到了一些教程,展示了如何从同一集群上的多个卡夫卡主题中提取内容,但是如果这些主题位于不同的集群上呢?如何将多个kafka集群中的主题读入spark?sparkSession.readStream.format(..)将返回一个DataStreamReader。您可以多次执行此操作以创建数组[DataStreamReader]。使用这些DataStreamReader,您可以合并它们以返回单个DataFrame,您

我试图从不同集群的多个主题中获得一些关于spark结构化流媒体和阅读的基本信息。我找到了一些教程,展示了如何从同一集群上的多个卡夫卡主题中提取内容,但是如果这些主题位于不同的集群上呢?如何将多个kafka集群中的主题读入spark?

sparkSession.readStream.format(..)
将返回一个
DataStreamReader
。您可以多次执行此操作以创建
数组[DataStreamReader]
。使用这些
DataStreamReader
,您可以合并它们以返回单个
DataFrame
,您可以随意使用它

  def getCombinedDF(streams: Array[DataStreamReader], topicName: String): DataFrame = {
    streams.map(rs => {
      rs
        .option("subscribe", topicName)
        .load()
    })
    .reduce(_.union(_))
  }

我们的Kafka实例是跨多个集群进行负载平衡的,这允许我在每个集群上订阅相同的主题,但将其作为一个主题进行处理。

sparkSession.readStream.format(..)将返回一个
数据流读取器
。您可以多次执行此操作以创建
数组[DataStreamReader]
。使用这些
DataStreamReader
,您可以合并它们以返回单个
DataFrame
,您可以随意使用它

  def getCombinedDF(streams: Array[DataStreamReader], topicName: String): DataFrame = {
    streams.map(rs => {
      rs
        .option("subscribe", topicName)
        .load()
    })
    .reduce(_.union(_))
  }

我们的Kafka实例在多个集群之间实现了负载平衡,这允许我在每个集群上订阅相同的主题,但将其作为一个主题进行处理。

您可以为每个DataStreamReader订阅不同的主题。在我上面的例子中,我只是将它们都映射到同一个,但在理论上你不必这样做。你可以为每个DataStreamReader订阅不同的主题。在我上面的例子中,我只是把它们都映射到同一个,但在理论上你不必这样做。