Golang如何处理parquet文件


这篇文章主要介绍“Golang如何处理parquet文件”,在日常操作中,相信很多人在Golang如何处理parquet文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Golang如何处理parquet文件”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!Parquet是Apache基金会支持的项目,是面向列存储二进制文件格式。支持不同类型的压缩方式,广泛用于数据科学和大数据环境,如Hadoop生态。首先创建struct,用于表示要处理的免费云主机域名数据:这里要提醒的是tag,用于说明struct中每个字段在生成parquet过程中如何被处理。parquet-go包可以处理parquet数据,更多的tag可以参考其官网。下面现给出生成parquet文件的代码,然后分别进行说明:定义结构体上面已经说明,但需要提醒的是类型与文档保持一致:接着就是使用faker包生成模拟数据。然后调用err := generateParquet(data)方法。该方法大概逻辑为:首先准备输出文件,然后基于本地输出文件构造pw,用于写parquet数据:然后设置压缩类型,并通过defer操作确保关闭文件。下面开始写数据:循环写数据,最后调用pw.WriteStop()停止写。 成功写文件后,下面介绍如何读取parquet文件。首先介绍如何一次性读取文件,主要用于读取较小的文件:大概流程如下:首先定义本地文件,然后构造pr用于读取parquet文件:然后定义目标内容容器u,一次性读取数据:但一次性大量记录加载至内存可能有问题。这是官方文档提示:If the parquet file is very big (even the size of parquet file is small, the uncompressed size may be very large), please don’t read all rows at one time, which may induce the OOM. You can read a small portion of the data at a time like a stream-oriented file.大意是不要一次读取文件至内存,可能造成OOM。实际应用中应该分页读取,下面通过代码进行说明:与上面函数差异不大,首先函数包括两个参数,用于指定页大小和页数,关键代码是跳过一定记录:根据这个方法可以获得总行数,pr.GetNumRows(),然后结合页大小计算总页数,最后循环可以实现分页查询。既然使用了Parquet列存储格式,下面演示下如何计算Score列的平均值。首先打开文件,然后调用pr.GetNumRows()方法获取总行数。然后基于路径指定列,其中parquet_go_root为根路径,因为前面使用字节数组,这里分割符变为u0001,完整路径为:parquet_go_rootu0001score。到此,关于“Golang如何处理parquet文件”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: C#怎么实现给Word每一页设置不同文字水印

这篇文章主要讲解了“C#怎么实现给Word每一页设置不同文字水印”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么实现给Word每一页设置不同文字水印”吧!在给Word每一页添加文字水印前,首先需要在Wor…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/18 19:25
下一篇 05/18 19:25

相关推荐