V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xianxia
V2EX  ›  Java

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

  •  
  •   xianxia · 2024-01-30 14:33:23 +08:00 · 2010 次点击
    这是一个创建于 366 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    17 条回复    2024-01-31 14:43:29 +08:00
    Goooooos
        1
    Goooooos  
       2024-01-30 14:46:35 +08:00
    wu00
        2
    wu00  
       2024-01-30 14:55:40 +08:00   ❤️ 2
    csv 不就是用逗号分隔的纯文本吗?需要库吗
    nekoneko
        3
    nekoneko  
       2024-01-30 15:06:32 +08:00
    @wu00 除了逗号还有各种其他分隔符, 没有统一标准. csv 还有一些需要转义的地方, 比如说 双引号之类的.
    JYii
        4
    JYii  
       2024-01-30 15:23:09 +08:00   ❤️ 1
    @wu00 #2 用库可能今天下班前就写完了。自己搞的话思考设计、编码、自测下来可能至少得 1d+了
    issakchill
        5
    issakchill  
       2024-01-30 15:54:32 +08:00
    easyexcel?
    zysuper
        6
    zysuper  
       2024-01-30 15:59:06 +08:00
    df.write.csv("/tmp/spark_output/datacsv")
    fu82581983
        8
    fu82581983  
       2024-01-30 16:11:03 +08:00   ❤️ 1
    如果导出比较频繁,并且使用阿里云/腾讯云的服务器,可以考虑直接内网存 OSS/COS ,然后返回给前端对应的 OSS/COS 地址
    xianxia
        9
    xianxia  
    OP
       2024-01-30 16:18:49 +08:00
    @fu82581983 目前就是这个方案,实现思路就是本地导出 csv 文件后上传到 oss ,然后返回前端地址。
    nerkeler
        10
    nerkeler  
       2024-01-30 16:18:56 +08:00
    easyexcel 不行?
    yekern
        11
    yekern  
       2024-01-30 16:22:10 +08:00
    数据流 buffer 写出不好么? 一次写出 1000~5000 行数据,对服务器和数据库完全没压力.边写出边下载.
    with
        12
    with  
       2024-01-30 16:28:27 +08:00
    easypoi
    cslive
        13
    cslive  
       2024-01-31 10:55:25 +08:00
    这个不用库吧,手写就行,csv 就是带分隔符的 txt 文件
    flmn
        14
    flmn  
       2024-01-31 13:16:41 +08:00
    commons-csv 就够用吧
    kelololy
        15
    kelololy  
       2024-01-31 13:46:46 +08:00
    手写肯定慢,特殊符号的处理,列对齐这些细的东西,单测都不知道得多久
    IAMQ
        16
    IAMQ  
       2024-01-31 14:42:54 +08:00
    easyexcel
    pocketz
        17
    pocketz  
       2024-01-31 14:43:29 +08:00
    @xianxia 所以你的需求具体是什么?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1818 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:34 · PVG 16:34 · LAX 00:34 · JFK 03:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.