gpt4 book ai didi

apache-zeppelin - 使用 zeppelin 在 csv 中导出数据

转载 作者:行者123 更新时间:2023-12-04 12:18:57 27 4
gpt4 key购买 nike

我需要从 zeppelin 中的 %sql 解释器以 csv 格式导出数据。我怎么能这样做?
我需要添加一个按钮,然后单击它应该将数据导出到 csv 中,如客户端 sql 解释器中 zeppelin 中的图表所示。

最佳答案

目前,这不受支持(Zeppelin 0.5.6)。不过,似乎这将在下一个版本(0.6.0)中添加。您可以从 Zeppelin git page 克隆它,或者您可以使用我正在使用的下一个解决方法:

  • 您将需要尝试导出的笔记本和段落的 ID。您可以通过单击要导出的段落的选项菜单中的“链接此段落”来获取它们。当你这样做时,你会得到一个新窗口。 ID在新窗口的url中:http://localhost:8080/#/notebook/{Notebook-ID}/paragraph/{Paragraph-ID}?asIframe
  • 使用 Zeppelin Notebook API .向 http://localhost:8080/api/notebook/{Notebook-ID}/paragraph/{Paragraph-ID} 发送 HTTP-GET 请求
  • 响应是一个 json。领域body.result.msg是一个将结果保存为 TSV(制表符分隔值)的字符串。这几乎是您所需要的(您可以解析它并将字符串中的所有 \t 替换为 , 以获取 CSV 文件)。

  • 一个简单的代码可以让您立即解决这个问题。

    编辑:

    这是一个执行此操作的 Python 脚本。调用 getTSV并将您通过单击“链接此段落”获得的段落的网址发送给它:
    import requests
    import json

    def parseURL(paragraphUrl):
    url = paragraphUrl.split(":8080")
    address = url[0]
    vals = url[1].split("/")
    notebook = vals[3]
    paragraph = vals[5].split("?")[0]
    return [address, notebook, paragraph]

    def getData(address, notebook, paragraph):
    response = requests.get(address + ":8080/api/notebook/" + notebook + "/paragraph/" + paragraph)
    return response.text

    def getTSV(paragraphUrl):
    # This function gets the same url that you get from clicking on "Link this paragraph"
    [address, notebook, paragraph] = parseURL(paragraphUrl)
    response = getData(address,notebook,paragraph)
    return json.loads(response)["body"]["result"]["msg"]

    关于apache-zeppelin - 使用 zeppelin 在 csv 中导出数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34626520/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com