求助! Java 导出 csv 文件有啥好方案

2024-01-30 14:33:23 +08:00
 xianxia

大佬们,Java 导出 csv 文件有什么比较好的方案吗?数量量级 50 M - 100 M ,考虑 IO 操作、Spark 操作、第三方包等等。大佬们有比较推荐的吗。

2013 次点击
所在节点    Java
17 条回复
Goooooos
2024-01-30 14:46:35 +08:00
wu00
2024-01-30 14:55:40 +08:00
csv 不就是用逗号分隔的纯文本吗?需要库吗
nekoneko
2024-01-30 15:06:32 +08:00
@wu00 除了逗号还有各种其他分隔符, 没有统一标准. csv 还有一些需要转义的地方, 比如说 双引号之类的.
JYii
2024-01-30 15:23:09 +08:00
@wu00 #2 用库可能今天下班前就写完了。自己搞的话思考设计、编码、自测下来可能至少得 1d+了
issakchill
2024-01-30 15:54:32 +08:00
easyexcel?
zysuper
2024-01-30 15:59:06 +08:00
df.write.csv("/tmp/spark_output/datacsv")
rewluck
2024-01-30 16:03:33 +08:00
fu82581983
2024-01-30 16:11:03 +08:00
如果导出比较频繁,并且使用阿里云/腾讯云的服务器,可以考虑直接内网存 OSS/COS ,然后返回给前端对应的 OSS/COS 地址
xianxia
2024-01-30 16:18:49 +08:00
@fu82581983 目前就是这个方案,实现思路就是本地导出 csv 文件后上传到 oss ,然后返回前端地址。
nerkeler
2024-01-30 16:18:56 +08:00
easyexcel 不行?
yekern
2024-01-30 16:22:10 +08:00
数据流 buffer 写出不好么? 一次写出 1000~5000 行数据,对服务器和数据库完全没压力.边写出边下载.
with
2024-01-30 16:28:27 +08:00
easypoi
cslive
2024-01-31 10:55:25 +08:00
这个不用库吧,手写就行,csv 就是带分隔符的 txt 文件
flmn
2024-01-31 13:16:41 +08:00
commons-csv 就够用吧
kelololy
2024-01-31 13:46:46 +08:00
手写肯定慢,特殊符号的处理,列对齐这些细的东西,单测都不知道得多久
IAMQ
2024-01-31 14:42:54 +08:00
easyexcel
pocketz
2024-01-31 14:43:29 +08:00
@xianxia 所以你的需求具体是什么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1012762

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX