可通过API访问Spark结果

时间:2018-10-25 07:25:07

标签: apache-spark bigdata

我们真的很想在此输入有关Spark Query的结果如何被Web应用程序访问的信息。鉴于Spark在行业中被广泛使用,我本以为这部分会有很多答案/教程,但是我什么也没找到。

这里有一些想到的选择

  1. Spark结果保存在另一个DB(也许是传统的DB)中,查询请求返回新的表名,以便通过分页查询进行访问。这似乎可行,尽管由于我们需要处理查询的完成而有些费解。

  2. Spark结果被泵送到消息传递队列中,通过该消息传递套接字服务器进行连接。

让我感到困惑的是,使用JDBC之类的其他Spark连接器(如Tableau连接器)应该拥有所有数据(而不是我们通常可以通过Livy或Spark的其他REST接口获得的前500名)。这些连接器如何通过单个连接获取所有数据。

具有专业知识的人可以在这种意义上提供帮助吗?

1 个答案:

答案 0 :(得分:0)

正如您提到的,我认为标准方法是使用Livy。由于它是REST API,因此您不会期望得到包含完整结果的JSON响应(毕竟可能是千兆字节的数据)。

相反,您将在A中使用分页,并发出多个请求以获取所需的行数。无论如何,Web应用程序一次只需要显示或可视化一小部分数据即可。

但是从您在对Raphael Roth的评论中提到的内容来看,您并不是要直接从Web应用程序调用此API(这是有充分理由的)。因此,您将拥有一个由Web应用程序调用并随后调用Spark的API层。但是在这种情况下,除非您特别需要完整的结果,否则您仍然可以使用Livy + pagination来实现所需的功能。如果确实需要在后端生成完整的结果,则可以设计Spark查询,以便它们具体化结果(理想情况下为云存储),然后您所需要的就是让您的API层访问Spark写入结果的存储。 / p>

相关问题