DolphinDB中如何按Partition逐步保存csv文件?

发布于 2022-09-12 03:25:48 字数 271 浏览 24 评论 0

在dolphindb的一个分布式分区表中,保存了约100多G的数据,现在想要把这些数据导出成csv文件,我知道有saveText的方法:

db = database("dfs://db1")
t = select * from db.loadTable("tb1")
t.saveText("mydata.csv")

但是因为内存有限,无法全量读取并导出。我想知道是否有办法,按照分区逐个导出,将内存的使用控制在可用范围内,并且最后的结果能拼接成单个csv文件?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风启觞 2022-09-19 03:25:48

DolphinDB database的saveText函数支持追加数据,只要设置参数append=true即可。
因此可以把分区数据一个个加载到内存,然后追加保存到csv文件。下面的例子是一个按月分区的数据库,用pipeline连续执行:

login("admin","123456")
v = 2015.01M..2016.12M
def queryData(m){
    return select * from loadTable("dfs://db1", "tb1") where TradingTime between datetime(date(m)) : datetime(date(m+1))
}
def saveData(tb){
    tb.saveText("/hdd/hdd0/data/gtatest.csv",',', true)
}
pipeline(each(partial{queryData}, v),saveData)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文