Hi Steffen,

You could make the class `TextAPIClient` serializable, or use `RichMapFunction` 
[1] and instantiate all the required objects in its `open()` method.

[1] 
https://ci.apache.org/projects/flink/flink-docs-master/dev/api_concepts.html#rich-functions
 
<https://ci.apache.org/projects/flink/flink-docs-master/dev/api_concepts.html#rich-functions>

Best,
Xingcan

> On Jul 19, 2018, at 6:56 PM, Steffen Wohlers <steffenwohl...@gmx.de> wrote:
> 
> Hi all,
> 
> I’m new to Apache Flink and I have the following issue:
> 
> I would like to enrich data via map function. For that I call a method which 
> calls an endpoint but I get following error message 
> 
> „The implementation of the MapFunction is not serializable. The object 
> probably contains or references non serializable fields.
>       at 
> org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:99)“ …
> „Caused by: java.io.NotSerializableException: 
> com.aylien.textapi.TextAPIClient“
> 
> Is there a smart way to fix that issue?
> 
> Regards,
> 
> Steffen
> 
> 
> Map Function:
> DataStream<TweetSentiment> tweetSentimentDataStream = noRTDataStream
>         .map(new MapFunction<Tweet, TweetSentiment>() {
>             @Override
>             public TweetSentiment map(Tweet tweet) throws Exception {
>                 String polarity = "good";
>                 polarity = test.testMethod();
>                 polarity =  sentimentAnalysis.sentiment(tweet.getText());
>                 return new TweetSentiment(tweet, polarity, 0);
>             }
>         });
> 
> Class:
> 
> public class SentimentAnalysis implements Serializable {
> 
>     private TextAPIClient _sentimentClient;
> 
>     public SentimentAnalysis () {
>         _sentimentClient = new TextAPIClient(„xxx", „xxx");
>     }
> 
>     public String sentiment(String text)  throws Exception{
>         SentimentParams sentimentParams = new SentimentParams(text, null, 
> null);
>         Sentiment sentiment = _sentimentClient.sentiment(sentimentParams);
> 
>         return sentiment.getPolarity();
>     }
> (Analysis via Aylien)

Reply via email to