Re: getRuntimeContext(): The runtime context has not been initialized.

Posted by Fabian Hueske-2 on
URL: http://deprecated-apache-flink-user-mailing-list-archive.369.s1.nabble.com/getRuntimeContext-The-runtime-context-has-not-been-initialized-tp23718p23745.html

Yes, it would be good to post your code.
Are you using a FoldFunction in a window (if yes, what window) or as a running aggregate?

In general, collecting state in a FoldFunction is usually not something that you should do. Did you consider using an AggregateFunction?

Fabian

Am Mi., 10. Okt. 2018 um 11:08 Uhr schrieb Chesnay Schepler <[hidden email]>:
In which method are you calling getRuntimeContext()? This method can only be used after open() has been called.

On 09.10.2018 17:09, Ahmad Hassan wrote:
Hi,

We want to use MapState inside fold function to keep the map of all products that we see in 24 hour window to store huge state in rocksdb rather than overflowing heap. However, I don't seem to initialise mapstate within foldfunction or any class that is extending RichMapFunction

private transient MapStateDescriptor<String, String> descr = new MapStateDescriptor<>("mymap", String.class, String.class);
this.getRuntimeContext().getMapState(descr);

I get error

java.lang.IllegalStateException: The runtime context has not been initialized.
at org.apache.flink.api.common.functions.AbstractRichFunction.getRuntimeContext(AbstractRichFunction.java:53)


Any clues how to get the runtime context please?

Thanks.

Best regards