确定哪个对象在Apache-Flink中不可序列化-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

确定哪个对象在Apache-Flink中不可序列化

2018-12-11 16:12:27 3433 1

我正在写一个Flink转换器,我有一个Histogram具有以下属性的自定义对象:

case class Histogram(
nRows: Int,
nCols: Int,
min: Int,
step: Double,
private val countMatrix: Array[ArrayBuffer[Double]],
private val cutMatrixL1: Array[ArrayBuffer[Double]],
val distribMatrixL1: Array[ArrayBuffer[Map[Int, Double]]],
private val distribMatrixL2: Array[ArrayBuffer[Map[Int, Double]]],
private val cutMatrixL2: ArrayBuffer[ArrayBuffer[Double]])
extends Serializable {

???

}
这是我的FitOperation:

implicit val fitOp = new FitOperation[PIDiscretizerTransformer, LabeledVector] {

override def fit(
                  instance: PIDiscretizerTransformer,
                  fitParameters: ParameterMap,
                  input: DataSet[LabeledVector]): Unit = {

  // get params...

  val metric = input.map { x ⇒
    // (instance, histrogram totalCount)
    (x, Histogram(nAttrs, l1InitialBins, min, instance.step), 1)
  }.reduce { (m1, m2) ⇒
    // Update Layer 1
    val updatedL1 = updateL1(m1._1, m1._2, instance.step, initialElems, alpha, m1._3)

    //         Update Layer 2 if neccesary
    val updatedL2 = if (m1._3 % l2updateExamples == 0) {
      updateL2(m1._1, updatedL1)
    } else updatedL1

    (m2._1, updatedL2, m1._3 + 1)
  }.map(_._2)

  //      instance.metricsOption = Some(metric)
}

}
这很好用,但如果我取消注释最后一行:instance.metricsOption = Some(metric)我得到一个java.io.NotSerializableException: org.apache.flink.api.scala.DataSet

我怎么能找到班上哪个Histogram类导致的问题?据我所知,ArrayBuffer可序列化,Map也是如此。虽然我发现了这个问题:

地图无法在scala中序列化?

这说明.mapValues不可序列化,但我没有.在任何地方使用mapValues。

取消 提交回答
全部回答(1)
  • 社区小助手
    2019-07-17 23:19:50

    问题是你指的是你的MapFunction里的instance.step。instance是PIDiscretizerTransformer无法序列化的类型。因此,您需要计算步骤之外的步骤MapFunction并将值传递给函数。然后你的程序应该是可序列化的。

    0 0
相关问答

1

回答

Apache Flink 1.13 在新的语法中支持哪些窗口?

2021-11-18 16:16:52 113浏览量 回答数 1

1

回答

Flink CDC 在生产环境项目背景是怎么样的?

2022-01-19 16:34:13 1333浏览量 回答数 1

1

回答

Flink CDC项目运行环境与现状是什么样的?

2022-01-19 16:35:29 1336浏览量 回答数 1

1

回答

《Flink CDC:新一代数据集成框架》这本书可以在哪里下载?

2022-01-19 15:14:52 3946浏览量 回答数 1

1

回答

Flink CDC 区别于其他数据集成框架的一个核心点是什么?

2022-01-19 16:18:49 504浏览量 回答数 1

1

回答

Flink CDC 数据入湖的挑战有哪些?

2022-01-19 16:19:54 438浏览量 回答数 1

1

回答

Flink CDC 的出现为数据入湖架构提供了哪些新思路?

2022-01-19 16:16:53 495浏览量 回答数 1

1

回答

Flink CDC 社区怎么做深 CDC 技术?

2022-01-19 15:47:02 507浏览量 回答数 1

1

回答

Flink CDC Connectors是什么技术?

2022-01-19 15:39:18 566浏览量 回答数 1

1

回答

Flink SQL中的CDC格式是什么?

2021-12-08 21:55:34 209浏览量 回答数 1
+关注
社区小助手
社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。
12
文章
824
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载