在后面的段落中是否可以在%jdbc段中返回数据?

时间:2016-07-18 10:15:23

标签: apache-zeppelin

如果段落从%jdbc intepreter返回数据,那么该数据是否可用于以下使用其他解释器的段落?

例如

 %jdbc(psql)
 select * from `table`

然后

 %python
 # load / access data here
 x = ...

与%spark解释器可以创建时态表的方式相同,以下段落可以运行%sql。

1 个答案:

答案 0 :(得分:2)

Apache Zeppelin有Generic JDBC Interpreter用于通过JDBC连接到不同的数据源。

它允许您创建与任何数据源的JDBC连接,现在它已经过测试:

  • 的Postgres
  • MySQL的
  • MariaDB的
  • 红移
  • Apache Hive
  • Apache Phoenix
  • Apache Drill

根据org.apache.zeppelin.jdbc.JDBCInterpreter.executeSql中的代码,它只显示数据。

因此,从数据源获取数据并在其他解释器中使用它的可能解决方案可能是。

  • 使用Scala解释器编写函数使用Scala。它连接到数据源并根据查询结果生成DataFrame。
  • 扩展JDBCInterpreter,或者基于JDBCInterpreter创建一个新的intepreter,它向数据源查询并根据结果生成DataFrame。这可能需要扩展SQL语法来添加此功能。