【问题标题】:Calculating derived value in Spark Streaming在 Spark Streaming 中计算派生值
【发布时间】:2017-03-06 02:07:13
【问题描述】:

我有两个 org.apache.spark.streaming.dstream.DStream[Int] 类型的键值对。

第一个键值对是(单词,频率)。 第二个键值对是(行数,值)。

我想将频率除以每个单词的值。但是,我得到以下错误 值 / 不是 org.apache.spark.streaming.dstream.DStream[Int] 的成员

示例代码:

f 是单词的频率,c 是总计数 rdd 有单词和频率

val cp = rdd.foreachRDD {
  x => (x, f/c)
}

【问题讨论】:

  • f是DStream的对象吗?

标签: scala spark-streaming dstream


【解决方案1】:

首先在 DStream 对象上应用地图转换,然后在里面你将得到 RDD 现在你在 RDD 对象上应用地图转换如下

dStream.map{rdd=>
 rdd.map(x=>(x,f/c))
}

如果 f 是 DStream 的对象,则在 RDD 或 DStream 闭包中使用之前先收集它。

【讨论】:

  • 是的 F 是 Dstream 的一个对象。但是当我尝试收集时,它说值收集不是 org.apache.spark.streaming.dstream.DStream[Int] 的成员
  • 我不建议将其作为一个好的解决方案,但您可以做一件事,您可以使用 saveAsTextFiles 操作将 f DStream 保存在文件中,然后将该文本文件作为 RDD 读取并收集它,然后将其用作值的 f
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-02
  • 2021-08-20
  • 2017-07-27
  • 2016-06-17
  • 2019-04-26
  • 1970-01-01
  • 2012-01-05
相关资源
最近更新 更多