Hi Chiwan Park,

Thank you for the clarification

Regards,
Rajesh

On Sun, Jul 19, 2015 at 11:49 PM, Chiwan Park <chiwanp...@apache.org> wrote:

> Hi,
>
> Flink program should have at least one data sink. When your program calls
> `print` method, the method adds a data sink into your program automatically
> and execute it immediately. If you want to run Flink program without
> calling `print` method, you should add a data sink into your program and
> execute it manually by calling `execute` method of `ExecutionEnvironment`
> object.
>
> Note that only some methods about data sink such as `print`, `count` and
> `collect` execute the program immediately.
>
> There are more detail descriptions about data sink [1] and lazy evaluation
> [2] in Flink documentation. The documentation will help you to understand
> the structure of Flink program.
>
> Regards,
> Chiwan Park
>
> [1]
> https://ci.apache.org/projects/flink/flink-docs-release-0.9/apis/programming_guide.html#data-sinks
> [2]
> https://ci.apache.org/projects/flink/flink-docs-release-0.9/apis/programming_guide.html#lazy-evaluation
>
> > On Jul 20, 2015, at 2:59 AM, Madabhattula Rajesh Kumar <
> mrajaf...@gmail.com> wrote:
> >
> > Hi Scahin,
> >
> > Thank you for the response. I have commented counts print line. After
> that I got below exception
> >
> > Exception in thread "main" java.lang.RuntimeException: No data sinks
> have been created yet. A program needs at least one sink that consumes
> data. Examples are writing the data set or printing it.
> >     at
> org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:914)
> >     at
> org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:893)
> >     at
> org.apache.flink.api.java.LocalEnvironment.execute(LocalEnvironment.java:50)
> >     at
> org.apache.flink.api.scala.ExecutionEnvironment.execute(ExecutionEnvironment.scala:590)
> >     at WordCount$.main(WordCount.scala:13)
> >     at WordCount.main(WordCount.scala)
> >
> > Regards,
> > Rajesh
> >
> > On Sun, Jul 19, 2015 at 8:26 PM, Sachin Goel <sachingoel0...@gmail.com>
> wrote:
> > Hi
> > You do not need to call env.execute after doing a print call. Print
> itself triggers the execution. The reason for the Exception is quite
> obvious. After the print call, there is no sink for the program execution.
> So, execution cannot proceed.
> > You can however explicitly define a sink and then call env.execute.
> >
> > Cheers!
> > Sachin
> >
> > -- Sachin Goel
> > Computer Science, IIT Delhi
> > m. +91-9871457685
> >
> > On Sun, Jul 19, 2015 at 8:06 PM, Madabhattula Rajesh Kumar <
> mrajaf...@gmail.com> wrote:
> > Hi,
> >
> > I have written simple wordcount program in scala. When I execute the
> program, I'm getting below exception.
> >
> > Please let me know how to fix this issue. I'm using Flink 0.9.0 version
> >
> > Below is the program :-
> >
> >     val env = ExecutionEnvironment.getExecutionEnvironment
> >     // get input data
> >     val text = env readTextFile("/Users/hadoop2/Data/word.txt")
> >     val counts = text flatMap(l=>l split(" ")) map(word=>(word,1))
> groupBy(0) sum(1)
> >     // emit result
> >     counts print
> >     env.execute("TEST")
> >
> > Exception :-
> >
> > Exception in thread "main" java.lang.RuntimeException: No new data sinks
> have been defined since the last execution. The last execution refers to
> the latest call to 'execute()', 'count()', 'collect()', or 'print()'.
> >     at
> org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:910)
> >     at
> org.apache.flink.api.java.ExecutionEnvironment.createProgramPlan(ExecutionEnvironment.java:893)
> >     at
> org.apache.flink.api.java.LocalEnvironment.execute(LocalEnvironment.java:50)
> >     at
> org.apache.flink.api.scala.ExecutionEnvironment.execute(ExecutionEnvironment.scala:590)
> >     at WordCount$.main(WordCount.scala:17)
> >     at WordCount.main(WordCount.scala)
> >
> > Regards,
> > Rajesh
> >
> >
>
>
>
>
>
>

Reply via email to