当前位置: 首页 > 知识库问答 >
问题:

在一个spark作业中使用多个spark结构化流式写入查询(90)可以吗?

子车睿
2023-03-14

所以我一个月前开始学习spark和cassandra。我遇到了这样一个问题,我必须使用spark预先聚合来自传感器的数据,然后将其放入cassandra表。

这是我的应用程序流程

Sensor Data -> Kafka -> Spark Structured Streaming -> Sink to Cassandra

问题是,我需要将数据按秒、分、时、日、月聚合到每年。这导致我在cassandra中创建了90多个聚合表。

就我的进展而言,我发现我必须使用每个聚合的一个写流查询将每个聚合下沉到每个cassandra表,这导致我创建了这个庞大的Spark作业,其中包含90个写流查询。这正常吗?或者至少对火花来说是“好的”?

感谢您的帮助!!

编辑。示例:

我有这个传感器可以检测网络上的网络攻击。我有这种聚合:-每秒/分钟/小时/天/月/年每个传感器的事件计数

示例每秒聚合

Sensor  year  month    day  hour   minute   second  hit
S1      2018  8        12   3      22       45      98182
S1      2018  8        12   3      22       46      992814
...

每分钟聚合示例

Sensor  year  month    day  hour   minute    hit
S1      2018  8        12   3      22        212458182
S1      2018  8        12   3      23        5523192814

这适用于其余的度量(共9个度量),每个度量有-12个聚合表。。。

共有2个答案

方砚
2023-03-14

这取决于你在做什么类型的聚合。如果你能给我们一个或两个例子,它会很有帮助。

蒋哲
2023-03-14

这是一个非常普遍的问题,实际上取决于你如何完成它。但一般来说,如果需要写入90个表,就无法真正避免90个writestreams,这应该是可以的。但这取决于OOO问题。

不管怎样,如果成功了,就成功了。

 类似资料:
  • 如何在单个作业中使用Spark根据密钥写入多个输出。 相关:按键写入多个输出扩展Hadoop,一个MapRe员作业 例如。 将确保为 而将是 编辑:我最近添加了一个新的答案,包括完整的导入,皮条客和压缩编解码器,请参阅https://stackoverflow.com/a/46118044/1586965,这可能是有帮助的,除了早期的答案。

  • 我正在使用Kafka和Spark 2.1结构化流。我有两个json格式的数据主题,例如: 我需要比较Spark中基于标记的两个流:name,当值相等时,执行一些额外的定义/函数。 如何使用Spark结构化流来做到这一点? 谢谢

  • 在过去的几个月里,我已经使用了相当多的结构化流来实现流作业(在大量使用Kafka之后)。在阅读了《Stream Processing with Apache Spark》一书之后,我有这样一个问题:有没有什么观点或用例可以让我使用Spark Streaming而不是Structured Streaming?如果我投入一些时间来研究它,或者由于im已经使用了Spark结构化流,我应该坚持使用它,而之

  • 运行环境:本地PC-同样的问题。Dataproc集群-spark-submit--包 org.apache.spark:spark-sql-kafka-0-102.12:2.4.5--类org.differentPartitionSparkStreaming--主纱--部署模式集群--num-executors 2--驱动程序--内存4G--executor-cores 4--executor-m

  • 我正在使用spark结构化流媒体、合流开源Kafka集群开发spark流媒体应用程序,并在AWS EMR中运行spark job。我们至少有20个Kafka主题,以AVRO格式将数据生成单个Kafka主题,每个主题在3到4个分区之间进行了分区。我正在使用Spark阅读所有20个主题(逗号分隔的主题值)。然后从生成的数据帧中过滤每个消息行,使用正确的Avro模式应用每个消息,并将生成的写入S3和Ca

  • 我如何判断RDD[0]、RDD[1]和RDD[2]是重新计算的还是仅仅脱水的? 总的来说,通过查看工作历史记录,你如何判断rdd是重新计算的还是仅仅脱水的?