xy629 最近的时间轴更新
xy629

xy629

V2EX 第 607502 号会员,加入于 2022-12-21 05:28:42 +08:00
根据 xy629 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
xy629 最近回复了
你面临的问题是处理两个非常大的数据集,并且需要找出它们之间的差异。这里有几个关键点需要考虑:

数据集过大,无法一次性加载到内存。
数据是无序的。
你需要比较两个数据集并找出存在于一个数据集而不在另一个中的元素,以及两个数据集中存在差异的元素。
你目前的方法是将数据分成多个小块(每块 10 条记录),然后使用类似哈希表的结构来进行比较。这种方法是可行的,但是效率较低,因为你需要多次读取和比较数据。

为了改进这一过程,可以考虑以下几种算法或方法:

1. 外部排序和合并
考虑到数据量大且无序,可以使用外部排序算法先对两个文件分别进行排序,然后再进行比较。外部排序是一种用于处理大量数据的排序算法,它会将数据分成多个块,分别排序后再合并。排序可以基于主键(这里是 Name )。排序后,你可以逐个比较两个文件的记录,以找到差异。

2. MapReduce
如果你有权限使用像 Hadoop 这样的分布式处理系统,MapReduce 可能是一个好方法。MapReduce 能够处理大量数据,通过将任务分发到多个节点来并行处理,从而提高效率。在 MapReduce 中,你可以在 Map 阶段读取和标记来自两个不同文件的数据,在 Reduce 阶段进行聚合和比较。

3. 数据库导入和查询
鉴于数据源来自 Oracle 和 PostgreSQL ,另一个方法是将这些数据导入一个数据库,然后使用 SQL 查询来找出差异。数据库对于处理大量数据以及提供高效的查询和比较操作非常有效。你可以使用 JOIN 查询或者 EXCEPT 查询来找出差异。

4. 流处理
如果你能流式地处理数据(逐行读取而不是分块),可以在读取的同时进行比较。这可以通过使用类似哈希表的结构来实现,但是需要对内存管理进行更精细的控制。

关键词和概念
外部排序:处理无法全部放入内存的大数据集的排序方法。
MapReduce:一种分布式数据处理模型,适用于大规模数据集的处理。
数据库操作:使用 SQL 和数据库管理系统进行高效的数据查询和比较。
流处理:实时处理数据流的方法,适用于连续的数据输入。
根据你的资源和环境,可以选择最适合你情况的方法。如果你正在使用的环境(如特定的编程语言或框架)有限制,请告诉我,这样我可以提供更具体的建议。 -- from chatGPT
默哀一秒钟, 为这个时代
106 天前
回复了 icestraw 创建的主题 Apple 从官方售后感受到了苹果的内存税究竟有多高
小孩子的世界里, 价格和成本有关; 大人的世界里价格和需求有关 : )
131 天前
回复了 Funian 创建的主题  WATCH 直接开喷了, Apple Watch Ultra 2 真辣鸡
我稍微对案情做一个梳理: 楼主是男性(在他过往一篇强迫症帖子自己说的), 本帖中提到的室友是女性(如果"她"不是打错了的话), 平常也会有告诉同事锁屏密码这个习惯(过往帖子自己说的).

所以楼主的"室友"大概率也是知道他手机锁屏密码的, 至少很可能曾经某段时间知道过.

那么现在的情况很可能就是, 室友把玩了 watch, 并且试图用曾经知道的密码来解锁手表, 但是可能是密码被改的原因, 失败了.

但为什么室友对楼主撒了谎, 说自己没有动手表?

合理的猜测是, 楼主和这个"室友"并非普通室友那么简单, 中间或后来可能发生了一些故事和误解 : )
132 天前
回复了 Funian 创建的主题  WATCH 直接开喷了, Apple Watch Ultra 2 真辣鸡
本来是个引战贴, 看完楼上评论, 直接变成悬疑贴了.
楼主你还是先回忆一下昨晚都发生过什么
@V28a19cc GPT4 回答的很不错
搭配泡面桶可以提高生产力
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2614 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 13ms · UTC 10:46 · PVG 18:46 · LAX 03:46 · JFK 06:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.