【问题标题】:Is data returned in %jdbc paragraph available in subsequent paragraphs?%jdbc 段落中返回的数据是否在后续段落中可用?
【发布时间】:2016-11-20 21:48:52
【问题描述】:

如果段落从 %jdbc 解释器返回数据,该数据是否可用于后面使用其他解释器的段落?

例如

 %jdbc(psql)
 select * from `table`

然后

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

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

【问题讨论】:

  • 看起来与stackoverflow.com/questions/44968803/… 重复我在那里回答。您可以通过编程方式使用 spark sql。
  • @1ambda 你根本没有回答,这里是关于“重用”而不是“重新执行”。看起来答案是否定的,你不能。也许是zeppelin.apache.org/docs/0.7.0/rest-api/…,但听起来又硬又脏。
  • 不可重复使用。它是关于如何创建表并以编程语言(此处为 python)访问它的。你读过问题的标题吗? in subsequent paragraphs
  • 重复的问题/答案已被删除,不再可见。

标签: apache-zeppelin


【解决方案1】:

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

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

  • Postgres
  • MySql
  • MariaDB
  • 红移
  • Apache Hive
  • 阿帕奇凤凰
  • 阿帕奇钻

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

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

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

【讨论】:

  • 感谢您的回答@RockieYang - 不幸的是,您给我的东西我已经知道了。我需要知道的是如何从其他段落访问 %jdbc 段落中返回的数据。
  • 是的。当我第一次发布答案时,我没有意识到这一点。我添加了一些我能想到的可能的解决方案。
猜你喜欢
  • 2014-03-16
  • 1970-01-01
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-30
  • 2023-03-06
相关资源
最近更新 更多