【发布时间】: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