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

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

  •  
  •   xianxia · 296 天前 · 1918 次点击
    这是一个创建于 296 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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