我对火花很陌生。我使用 SPARK 作业生成了一个包含大约 420 MB 数据的文件。我有一个 Java 应用程序,它只需要根据某些条件从该文件并发查询数据并以 json 格式返回数据。到目前为止,我已经找到了两个用于 SPARK 的 RESTful API,但它们仅用于远程提交 SPARK 作业和管理 SPARK 上下文,
1)Livy
2)Spark job-server
如果可用,还有哪些其他选项可以执行相同的操作(数据库除外)?
您实际上可以使用 Livy 以 RESTful 的方式将结果作为友好的 JSON 返回!
session_url = host + "/sessions/1"
statements_url = session_url + '/statements'
data = {
'code': textwrap.dedent("""
val d = spark.sql("SELECT COUNT(DISTINCT food_item) FROM food_item_tbl")
val e = d.collect
%json e
""")}
r = requests.post(statements_url, data=json.dumps(data), headers=headers)
print r.json()
我的参考答案:Apache Livy:通过REST查询Spark SQL:可能吗?
相关:Livy 服务器:以 JSON 形式返回数据帧?