gpt4 book ai didi

apache-spark - 将2TB的压缩多行JSON转换为ND JSON

转载 作者:行者123 更新时间:2023-12-02 20:24:46 24 4
gpt4 key购买 nike

对于我的研究,我有大约20,000个gzip压缩多行json文件(〜2TB,所有文件都具有相同的架构)的数据集。我需要处理和清理这些数据(我应该说我对数据分析工具是非常陌生的)。

花了几天时间阅读了有关Spark和Apache Beam的信息之后,我确信第一步将是首先将此数据集转换为NDJSON。在大多数书籍和教程中,他们总是假设您正在使用某些新的行分隔文件。

转换此数据的最佳方法是什么?
我试图在gcloud上启动一个大型实例,并仅使用gunzip和jq来做到这一点。毫不奇怪,这似乎将花费很长时间。

在此先感谢您的帮助!

最佳答案

如果使用TextIO,则Apache Beam支持解压缩文件。
但是分隔符仍然是换行符。

对于多行json,您可以并行读取完整的文件,然后将json字符串转换为pojo,并最终重新整理数据以利用并行性。

所以步骤是

Get the file list > Read individual files > Parse file content to json objects > Reshuffle > ...

您可以通过 FileSystems.match("gcs://my_bucker").metadata()获得文件列表。

通过压缩 Compression.detect((fileResouceId).getFilename()).readDecompressed(FileSystems.open(fileResouceId))读取单个文件

关于apache-spark - 将2TB的压缩多行JSON转换为ND JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57609037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com