mysql - 创建 Spark Streaming 上下文后在 Spark 中缓存 RDS 数据

标签 mysql hadoop caching apache-spark spark-streaming

我们使用 Spark Streaming 通过 createDirectStream 从 Kafka 获取数据。

在同一个程序中,我连接到 MYSQL 以从数据库中获取一些数据。现在我想使用 spark 缓存这个结果。

这里的问题是我在开始时创建了一个 spark streaming context,现在要缓存这个 MYSQL 数据我必须将它转换为一个 RDD,这只有在 spark context 的帮助下才能实现,不幸的是我无法创建一个 spark上下文(因为已经根据 Spark 流创建了上下文)。

我不想设置 spark.driver.allowMultipleContexts = true 以允许 JVM 使用超过 spark 上下文,因为这可能会导致问题。

有没有办法使用 spark 来缓存它,或者我们如何将 MYSQL 的结果转换为 RDD?

最佳答案

根据您的问题描述进行操作。假设您正在启动一个 StreamingContext,如下所示:

val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")
val ssc = new StreamingContext(conf, Seconds(1))

您始终可以按照以下方式从您的流上下文中获取 SparkContext:

val sc = ssc.sparkContext

然后做你想做的事。它是与您的流式上下文关联的 Spark 上下文,因此无需为此创建新的 Spark 上下文。

关于mysql - 创建 Spark Streaming 上下文后在 Spark 中缓存 RDS 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36498849/

相关文章:

mysql - 由于某种原因,加入更新需要 9 到 30 个小时?

java - HBase 列数据类型

performance - Hadoop Map reduce - 如何加速作业启动/设置

hadoop - HDFS平衡,如何平衡HDFS数据

Django性能

mysql - 以特定方式将数据复制到新表

mysql - 在 Mysql 中需要多个子查询的查询

asp.net - SqlDataSource动态设置SelectCommand

asp.net-mvc - session 超时在 Azure Redis 缓存 session 状态提供程序中不会滑动

http - 如何在golang中缓存http.Response?