【问题标题】:Use Zeppelin with external javascript tools like plotly将 Zeppelin 与外部 javascript 工具一起使用,例如 plotly
【发布时间】:2018-05-15 10:20:45
【问题描述】:

我目前使用本地 Tomcat/JSP 服务/网页来使用 sql 获取数据并使用 plotly 将其显示在 webbrowser 上(使用此 javascript 库本地呈现)。我想对用户进行更多的数据处理,比如过滤,而不能用 sql 来做,因为 sql 查询需要几秒钟,一个网页的几个 sql 查询会花费太多时间。在 JSP 中,数据过滤非常复杂,因为您必须编写自己的过滤器函数,例如 https://blog.pavelsklenar.com/using-filteredrowset-simple-example/http://www.java2s.com/Code/Java/Database-SQL-JDBC/FilteredRowSetDemo.htm 。如果你知道 Pythons Pandas 或 sql 这似乎太复杂了。

我想知道 Zeppelin 是否是一个很好的解决方案:

  • 直接通过 sql 获取数据(已经可以使用),但是集成显示的可能性很好,但对我来说还不够。
  • 用户可以使用 AngularJS 视图 (https://zeppelin.apache.org/docs/0.7.3/displaysystem/front-end-angular.html) 调整多个过滤器(例如,在 1 和 3 之间的 column1 等)。
  • 从最后一段中读取过滤器范围,并使用一些过滤器与 python 的 pandas 进行数据整理,并将其保存为新的数据帧。
  • 使用此过滤后的数据框并使用本地 plotly.js 文件绘制数据(我有纯 plotly JS 代码)。一般来说,它可以与Using d3.js with Apache Zeppelin 的 %angular 段落一起使用(即使没有来自“else”的代码,所以 d3 似乎可以在开箱即用的 zeppelin 中使用)。但我想知道
    • 如何将数据帧从 Python 传递到 Angular 节点。根据https://zeppelin.apache.org/docs/0.7.3/displaysystem/back-end-angular.html我必须使用Spark才能使用变量;所以看来我必须整合一个火花包装段落。之后我是否必须编写将数据帧转换为 JSON 或类似的代码?
    • 如何使用 plotly 或其他本地 javascript 文件?如何指定位置?

你有什么想法或者你有其他/更好的想法?

【问题讨论】:

    标签: javascript python angularjs plotly apache-zeppelin


    【解决方案1】:

    我通过使用 pythons matplotlib 进行绘图任务,使用非交互式(这意味着没有像 plotly 或 d3 这样的 JavaScript 库)解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 2018-08-31
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多