我可以使用spark作为服务

时间:2016-11-30 15:42:45

标签: scala rest apache-spark dataframe architecture

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

如果有其他方式,请同时提出建议。但我想用spark作为基础框架。

1 个答案:

答案 0 :(得分:3)

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

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

但是,您可以:

  1. 启动JDBC Spark Server并查询此服务器。 Here是连接此服务器的教程。它是 REST服务,它只是JDBC服务器。您可以从REST服务连接到它(但不是以REST方式连接,只是用作数据源),将其用作数据源
  2. 将作业提交到Livy服务器 - 您的服务可能会致电Livy在Spark中运行一些工作
  3. 将作业提交到Spark REST API - 您的服务可能会调用Livy在Spark中运行某些作业,但在这种情况下,作业文件必须位于群集中的JAR文件中
  4. 第二和第三选项都需要准备好的工作代码。您可以使用查询/get/table/row=1调用 REST服务,您必须准备自己的服务,并通过适当的计算提交作业。

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

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