【问题标题】:Can I use spark as a service我可以使用 spark 作为服务吗
【发布时间】:2016-12-01 00:05:04
【问题描述】:

用例是我想将数据框作为对象返回,以进行休息服务。 休息服务没有火花上下文控制。 那么有什么方法可以让我执行 ANSI 查询,比如我在 registerAsTemptable 上的执行方式。
我将传递表名和查询表单休息服务。然后我应该将一些东西作为一个对象返回,我可以在视图中显示为一个表格。

如果有任何替代方法,那么也请提出建议。但我想使用 spark 作为基础框架。

【问题讨论】:

标签: scala rest apache-spark dataframe architecture


【解决方案1】:

不,您不能将 DataFrame 返回到 Rest 服务。它不能在 Spark 上下文之外工作。

Spark 没有开箱即用的服务支持

但是,您可以:

  1. 启动JDBC Spark Server 并查询此服务器。 Here 是连接此服务器的教程。它不是 REST 服务,它只是 JDBC 服务器。您可以从 REST 服务连接到它(但不是以 REST 方式,仅用作数据源),将其用作数据源
  2. 提交作业到Livy 服务器 - 你的服务可能会调用 Livy 在 Spark 中运行一些作业
  3. 提交作业到Spark REST API - 你的服务可能会调用 Livy 在 Spark 中运行一些作业,但在这种情况下作业文件必须在集群的 JAR 文件中

第二个和第三个选项都需要准备好的工作代码。 不是 REST 服务,您可以通过查询/get/table/row=1 调用它,您必须准备自己的服务,该服务将通过适当的计算提交作业。

结论: 不,Spark 没有内置的 REST 服务来查询数据。但是,它有一些选项可以以 REST 样式运行预定义的作业和查询数据。但是,这需要构建您自己的服务。他们必须使用预定义的作业查询适当的 Spark API。

如果您只想运行 SQL 查询,请考虑使用 JDBC Spark Server 作为服务的数据源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 2014-08-01
    • 1970-01-01
    • 2014-06-09
    相关资源
    最近更新 更多