Livy Server:将数据帧作为JSON返回?

前端之家收集整理的这篇文章主要介绍了Livy Server:将数据帧作为JSON返回?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Livy Server中执行一个语句,使用HTTP POST调用localhost:8998 / sessions / 0 / statements,具有以下正文
{
  "code": "spark.sql(\"select * from test_table limit 10\")"
}

我想以下列格式给出答案

(...)
"data": {
  "application/json": "[
    {"id": "123","init_date": 1481649345,...},{"id": "133","init_date": 1481649333,{"id": "155","init_date": 1481642153,]"
}
(...)

但我得到的是

(...)
"data": {
  "text/plain": "res0: org.apache.spark.sql.DataFrame = [id: string,init_date: timestamp ... 64 more fields]"
}
(...)

哪个是数据帧的toString()版本.

有没有办法使用Livy Server将数据帧作为JSON返回?

编辑

找到解决问题的JIRA问题:https://issues.cloudera.org/browse/LIVY-72

根据评论可以说Livy不会也不会支持这样的功能

解决方法

我对Livy没有很多经验,但据我所知,这个端点用作交互式shell,输出将是一个字符串,其实际结果将由shell显示.所以,考虑到这一点,我可以想出一种模拟你想要的结果的方法,但它可能不是最好的方法
{
  "code": "println(spark.sql(\"select * from test_table limit 10\").toJSON.collect.mkString(\"[\",\",\"]\"))"
}

然后,您将在字符串中包含一个JSON,以便您的客户端可以解析它.

猜你在找的JavaScript相关文章