/ / Come scrivere il contenuto di un Flink var per lo schermo in Zeppelin? - apache-flink, apache-zeppelin

Come scrivere il contenuto di un Flink var per lo schermo in Zeppelin? - apache-flink, apache-zeppelin

Cerco di eseguire i seguenti semplici comandi in Apache Zeppelin.

%flink

var rabbit = env.fromElements(
"ARTHUR:  What, behind the rabbit?",
"TIM:  It is the rabbit!",
"ARTHUR:  You silly sod!  You got us all worked up!",
"TIM:  Well, that"s no ordinary rabbit.  That"s the most foul, cruel, and bad-tempered rodent you ever set eyes on.",
"ROBIN:  You tit!  I soiled my armor I was so scared!",
"TIM:  Look, that rabbit"s got a vicious streak a mile wide, it"s a killer!")

var counts = rabbit.flatMap { _.toLowerCase.split("\W+")}.map{ (_,1)}.groupBy(0).sum(1)

counts.print()

Provo a stampare i risultati sul notebook. Ma sfortunatamente, ottengo solo il seguente risultato.

rabbit: org.apache.flink.api.scala.DataSet[String] = org.apache.flink.api.scala.DataSet@37fdb65c
counts: org.apache.flink.api.scala.AggregateDataSet[(String, Int)] = org.apache.flink.api.scala.AggregateDataSet@1efc7158
res103: org.apache.flink.api.java.operators.DataSink[(String, Int)] = DataSink "<unnamed>" (Print to System.out)

Come posso versare il contenuto dei conteggi nel blocco note in Zeppelin?

risposte:

4 per risposta № 1

La ragione del comportamento osservato risiede nell'interazione tra Apache Zeppelin e Apache Flink. Zeppelin cattura tutti gli output standard di Console. Tuttavia, Flink stampa anche l'output su System.out e questo è esattamente quello che sta succedendo quando chiami counts.print(). Il motivo per cui la soluzione di bzz funziona è che stampa il risultato usando Console.

Ho aperto un problema JIRA [1] e ho aperto una richiesta pull [2] per correggere questo comportamento in modo da poterlo utilizzare counts.print().


5 per risposta № 2

Il modo per stampare il risultato di tale calcolo in Zeppelin è:

%flink
counts.collect().foreach(println(_))

//or one might prefer
//counts.collect foreach println

Produzione:

(a,3)
(all,1)
(and,1)
(armor,1)
...