JSON日志文件压缩
给定一个包含行分隔JSON记录的文件:JSON日志文件压缩,json,filter,unique,stream-compaction,Json,Filter,Unique,Stream Compaction,给定一个包含行分隔JSON记录的文件: {"id": 1, "position": 1234} {"id": 2, "position": 23} {"id": 3, "position": 43} {"id": 1, "position": 223} 我希望压缩这样一个文件,只保留id的最后一个记录,例如,对于上面的示例,我希望将其作为输出: {"id": 2, "position": 23} {"id": 3, "position": 43} {"id": 1, "position": 2
{"id": 1, "position": 1234}
{"id": 2, "position": 23}
{"id": 3, "position": 43}
{"id": 1, "position": 223}
我希望压缩这样一个文件,只保留id的最后一个记录,例如,对于上面的示例,我希望将其作为输出:
{"id": 2, "position": 23}
{"id": 3, "position": 43}
{"id": 1, "position": 223}
tldr;是否有一个
uniq
可以与行分隔的JSON一起工作(并且速度很快)
输入文件可能包含10亿条记录,其中10-20%的记录可能会被丢弃 我尝试了各种方法:
sort | uniq
方法类似。分拣在这里很昂贵,而且可能工作量太大id offset length
1 0 27
2 27 25
3 52 25
1 77 26
什么是更好、更快(或最快)的方法?有没有解决此类问题的现有工具?此问题可以通过三个步骤解决:
tac
和sort-u
仅保留相关行整个过程相当高效。步骤1和2是可并行的。第3步可以完成。这个问题可以通过三步流程解决:
tac
和sort-u
仅保留相关行整个过程相当高效。步骤1和2是可并行的。第3步可以进行。压缩应该使用哪种语言?@BerndLinde,任何语言都不重要。我更感兴趣的是一种通用的方法或现有的工具。对压缩应该使用哪种语言有任何偏好吗?@BerndLinde,没有任何语言是无关紧要的。我更感兴趣的是一种通用的方法或现有的工具。对压缩应该使用哪种语言有任何偏好吗?@BerndLinde,没有任何语言是无关紧要的。我对通用方法或现有工具更感兴趣。