如何使用java spark提供csv文件?

时间:2017-01-12 19:47:40

标签: java csv download response spark-java

我正在使用spark为我正在编写的Web应用程序运行服务器端。我搜索了一下文档,但是我空了..有没有办法向前端提供数据,以便自动为用户下载csv文件?我试图用作csv的数据看起来像这样。

// example data... returned by "getData()"

JSONArray test = new JSONArray()
    .put(
        new JSONArray().put("foo").put("bar")
    )
    .put(
        new JSONArray().put(1).put(2)
    );


// route
get("/csv/:path", "application/json", (req, res) -> {
    res.type("text/csv");
    JSONArray reply = getData(req);
    return data; 
});

我正在查看文档的ResponseTransformers部分,但我无法弄清楚如何将数据作为可下载的csv文件而不是json对象提供。我假设ResponseTransformer以某种方式需要进行子类化,但我找不到一个能够做我想做的事情的例子。任何人都可以向我提供一个例子,或者指出一些解释如何做到这一点的文档?

编辑:我能够在javascript方面调用我的路线。

window(route);

允许我在计算机上选择一个程序来下载响应。但是,数据在记事本中看起来像这样

[["foo","bar"],[1,2]]

所以,关闭..但不是一个csv文件。我希望输出看起来更像这样。

foo,bar
1,2

1 个答案:

答案 0 :(得分:1)

我认为您可以使用StringBuilder来呈现您的csv文件,就像this answer一样。我还认为您的请求func TestExpectedPanic() { got := panicValue(func() { closeTransaction(true) }) a, ok := got.(error) if a != errUnexpectedClose || !ok { t.Error("Expected ", errUnexpectedClose.Error()) } } func panicValue(fn func()) (recovered interface{}) { defer func() { recovered = recover() }() fn() return } 的第二个参数也可以删除。它看起来像这样:

"application/json"