Flink无法序列化scala类/ Task Not Serializable

时间:2016-08-08 14:37:07

标签: scala serialization apache-flink flink-streaming

我的scala类有两个字段 vals 但flink说它没有setter。因此任务不可序列化。

我尝试使用var的setter但是然后它说复制setter。 vals是公开的,然后它为什么要求制定者。 Flink版本1.1.0

string[0...end], string[1...end], ..., string[end - 2...end]

我的代码:

  d3.csv("some.csv", function(d){
      // coerce your data to numbers
      return {
        count: +d.count,
        radius: +d.radius
      } 
    },
    function(data){        
      // create your svg for each row of data
      var s = d3.selectAll("svg")
        .data(data)
        .enter()
        .append("svg")
        .attr("width", 600)
        .attr("height", 100);

      // use a sub-selection to create a circle for each count
      s.selectAll('circle')
        .data(function(d){
          // the bound data will simply be an array with repeating radius
          return d3.range(d.count).map(function(_){ return d.radius });
        })
        .enter()
        .append('circle')
        // radius is the same for each circle
        .attr('r', function(d){
          return d;
        })
        // space the circles so they look good;
        .attr('cx', function(d,i,j){
          return ((d + 2) * 2) * i + 10;
        })
        .attr('cy', 50)
        .style('fill', 'steelblue');        
  });

例外:

class Impression(val map: Map[String, String],val keySet:Set[String])

1 个答案:

答案 0 :(得分:0)

尽量不要直接使用类的字段,而是将其包装在方法中,你几乎可以去。