There might actually be another way to do that using python or scala code. I don't have experience in those, but I guess the overall idea behind it would be to have this type of code in a paragraph that you run:
// Include python websocket library // pythonWebsocketOpenConnection(myServerWithData) // pythonWebsocketEventListener(event) { // transform data to be in the format "product\tprice\nbanana\t12\ napple\t8" // print("%table " + event.data ) //} This example is for the result of a single paragraph (the one with the code), However if you receive result for multiple graphs in that hook, you could probably prepare other paragraphs with something like: // print("%table " + graphData1 ) and change the original hook in previous example to do // pythonWebsocketEventListener(event) { // graphData1 = event.data.graph1 (transformed in the format "product\tprice\nbanana\t12\napple\t8") // z.runParagraph(paragrpahID) (The one with the graphData1, the ID is in the paragraph dropdown settings) // etc... //} On Thu, Sep 8, 2016 at 5:31 PM, Corneau Damien <cornead...@gmail.com> wrote: > To reply to 1) > > The type of charts and its options are set in the UI, and saved as > settings in the note. > So the queries do not have any effect on it. > > The front-end receive data as a result of a query. > > for example: > > You can type > > ``` > %sql > select * from bank > ``` > > And the front-end will receive a table like result in the form of: > > "product\tprice\nbanana\t12\napple\t8" > > It will first show it as a Table, but the UI allows you to change the > visualization type. > > > To reply to 2) > > I don't have any knowledge of a websocket interpreter. > > However like I explained before in the Zeppelin workflow, > Zeppelin Server send a Query through an interpreter to whatever type of > backend, and gets a result back. > It then send back that result to the UI. > > A Spark interpreter is used to query Spark, > A JDBC interpreter is used to query SQL server > and so on... > (We even have a shell interpreter) > > If you are using something custom outside of the existing data > processing/data store technology we have, > and you want to make Zeppelin communicate with it to render data, you will > need to create a custom interpreter. > > On Thu, Sep 8, 2016 at 4:20 PM, kant kodali <kanth...@gmail.com> wrote: > >> @Corneau The links you have pointed out doesnt show how I can retrieve >> messages through websocket and tie to chars. I would stress again and say >> how do i tie all this up to charts? >> >> On Thu, Sep 8, 2016 at 12:17 AM, kant kodali <kanth...@gmail.com> wrote: >> >>> Hi Corneau, >>> >>> I appreciate the responses but again I am really looking for a specific >>> answer >>> >>> 1. "This protocol looks interesting but how do I construct messages >>> such that I can see different visualizations of charts?" This question >>> is not being addressed. >>> >>> 2. How can I use an existing interpreter and achieve my goal otherwords >>> again how can I tie all this thing to charts (I just haven't heard any >>> answer related to that)? If I were to write my own interpreter then I might >>> as well create my own UI. >>> >>> It is ok if you guys say it is not possible and I would understand that >>> and probably pick a different route. >>> >>> Thanks much, >>> Kant >>> >>> >>> On Thu, Sep 8, 2016 at 12:10 AM, Corneau Damien <cornead...@gmail.com> >>> wrote: >>> >>>> You will probably need to make an interpreter for it, or use an >>>> existing one. >>>> >>>> https://zeppelin.apache.org/docs/0.7.0-SNAPSHOT/manual/inter >>>> preters.html >>>> >>>> You will find the list of existing interpreters in the menu. >>>> >>>> If you do need to create one, then you can refer to this guide >>>> https://zeppelin.apache.org/docs/0.7.0-SNAPSHOT/development/ >>>> writingzeppelininterpreter.html >>>> >>>> On Thu, Sep 8, 2016 at 3:56 PM, kant kodali <kanth...@gmail.com> wrote: >>>> >>>>> @spacewalkman Just an FYI I don't have anything to do with Spark at >>>>> the moment. I just have a node.js server which is capable of websocket >>>>> connections and ready to push data needed for charts. >>>>> >>>>> This protocol looks interesting but how do I construct messages such >>>>> that I can see different visualizations of charts? I am pretty sure I have >>>>> articulated my question clearly it will great if I can see a bit >>>>> detailed description or a simple example. >>>>> >>>>> I believe that I am asking for a very simple feature. >>>>> >>>>> Thanks a ton, >>>>> Kant >>>>> >>>>> On Wed, Sep 7, 2016 at 8:52 PM, spacewalk...@163.com < >>>>> spacewalk...@163.com> wrote: >>>>> >>>>>> maybe a custom SparkStreamingInterpreter can handle this. >>>>>> >>>>>> zeppelin WS protocol is defined in: >>>>>> >>>>>> >>>>>> 1. https://github.com/apache/zeppelin/blob/master/zeppelin-zeng >>>>>> ine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java >>>>>> >>>>>> <https://github.com/apache/zeppelin/blob/master/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/socket/Message.java> >>>>>> >>>>>> >>>>>> every [c-s] message is handled by zeppelin backend, [s-c] is handled >>>>>> by zeppelin frontend.All you have to do is when new streaming data is >>>>>> there, triigger a [s-c] message from backend, a frontend event handler >>>>>> may >>>>>> also required. >>>>>> >>>>>> >>>>>> 在 2016年9月8日,11:39,kant kodali <kanth...@gmail.com> 写道: >>>>>> >>>>>> ok here is a concrete example. I am still trying to connect the >>>>>> dots..If I were to split Zeppelin as both front end and backend then I >>>>>> wouldn't choose to use Zeppelin in the first place. The main motivation >>>>>> for >>>>>> me to explore Zeppelin is that I don't have to spend time developing >>>>>> different visualiztions. I have used tableau before I see Zeppelin to be >>>>>> similar in some ways. ok now here is the problem I am trying to solve and >>>>>> any help I can get will be great! >>>>>> >>>>>> say I am trying to build a time series graph(bar graph or whatever >>>>>> works) where my x axis represent time and y axis represent total number >>>>>> of >>>>>> transactions and say every second I get updates through web socket from >>>>>> my >>>>>> server and I need the graph to be updated every second. thats it. >>>>>> >>>>>> please let me know if that is feasible. >>>>>> >>>>>> Thanks, >>>>>> Kant >>>>>> >>>>>> On Wed, Sep 7, 2016 at 6:59 PM, spacewalk...@163.com < >>>>>> spacewalk...@163.com> wrote: >>>>>> >>>>>>> i thought it was a separating zeppelin backend and frontend problem, >>>>>>> but what @corneadoug say is a high-level WS description, maybe i >>>>>>> misinterpretation @kant kodali’s issue >>>>>>> >>>>>>> >>>>>>> 在 2016年9月8日,09:48,Corneau Damien <cornead...@gmail.com> 写道: >>>>>>> >>>>>>> This change wouldn't solve your issue, it is the address where the >>>>>>> front-end send his API requests and listen to WS (zeppelin server) >>>>>>> I guess your requirements are different. >>>>>>> >>>>>>> The way Zeppelin works is usually pretty simple: >>>>>>> >>>>>>> 1) You type your code in the front-end >>>>>>> 2) That code is sent to Zeppelin server to be run >>>>>>> 3) The server send it to the right processing engine >>>>>>> 4) Processing engine send back the result >>>>>>> 5) Zeppelin Server send a websocket event >>>>>>> 6) Front-end show whatever he receives >>>>>>> >>>>>>> You might be able to find a few Notebook examples on how some people >>>>>>> used Spark Streaming here: >>>>>>> https://www.zeppelinhub.com/viewer/showcases/Streaming >>>>>>> >>>>>>> On Thu, Sep 8, 2016 at 3:30 AM, kant kodali <kanth...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi! Thanks for this but I still see the big picture. I have not >>>>>>>> used Angular before nor I am a frontend guy. so I have the following >>>>>>>> questions. >>>>>>>> >>>>>>>> >>>>>>>> 1. Why do we need to change the source code? isn't this >>>>>>>> configurable or isn't there a way to pass url as a parameter? If >>>>>>>> you think >>>>>>>> it is the easiest way sure I can change that. >>>>>>>> 2. How change this let me grab data from my websocket server >>>>>>>> and display it with the charts/graphs (simple to graphs we see when >>>>>>>> we run >>>>>>>> sql on Zeppelin notebook) >>>>>>>> 3. if there is a simple example that would be awesome. >>>>>>>> >>>>>>>> Thanks again! >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Sep 7, 2016 5:05 AM, spacewalk...@163.com >>>>>>>> spacewalk...@163.com wrote: >>>>>>>> >>>>>>>>> @kant kodali >>>>>>>>> >>>>>>>>> change zeppelin-web\ src\components\baseUrl\baseUrl.service.js >>>>>>>>> like this: >>>>>>>>> >>>>>>>>> this.getWebsocketUrl = function() { >>>>>>>>> var wsProtocol = location.protocol === 'https:' ? 'wss:' : >>>>>>>>> 'ws:'; >>>>>>>>> return wsProtocol + ‘//your_ip_address:' + this.getPort() + >>>>>>>>> skipTrailingSlash(location.pathname) + '/ws'; >>>>>>>>> }; >>>>>>>>> >>>>>>>>> this.getRestApiBase = function() { >>>>>>>>> return location.protocol + '//your_ip_address:' + >>>>>>>>> this.getPort() + skipTrailingSlash(location.pathname) + >>>>>>>>> '/api'; >>>>>>>>> }; >>>>>>>>> >>>>>>>>> 在 2016年9月7日,15:39,kant kodali <kanth...@gmail.com> 写道: >>>>>>>>> >>>>>>>>> HI Guys, >>>>>>>>> >>>>>>>>> I have a server which can handle websocket connections. Now I >>>>>>>>> would like to see if there is a way to tell apache zeppellin to >>>>>>>>> create to >>>>>>>>> websocket connect to my server and display the whatever it received? >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> Kant >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>> >> >