协调工具[比较两个大数据集的记录]

y1aodyip  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(398)

我被要求建立一个协调工具,可以比较两个大的数据集(我们可以假设输入源是两个优秀的)。
excel中的每一行包含40-50列,并记录在每一列级别进行比较。每个文件包含近300万条记录或大约4-5 gb的数据。[数据可能不是排序格式]
如果我能得到一些提示,我将不胜感激。以下技术是否合适
ApacheSpark
apache spark+ignite[假设在时间帧之间进行实时协调]
apache ignite+apache hadoop
任何关于建立内部工具的建议。

p5cysglq

p5cysglq1#

我一直在研究上述问题,这里是解决办法。https://github.com/tharun026/sparkdatareconciler 目前的先决条件是
两个数据集的列数应该相同
目前,该解决方案只接受镶块。
该工具为每列提供匹配百分比,以便您可以了解哪个转换出错。

ep6jt1vc

ep6jt1vc2#

首先是警告:
编写一个协调工具包含许多小麻烦和边缘情况,如日期格式、数字格式(数字中的逗号、科学记数法等)、复合键、阈值、忽略列、忽略页眉/页脚等。
如果只有一个文件需要记录,并且输入定义良好,那么可以考虑自己进行记录。
但是,如果您可能尝试将其扩展为更通用的解决方案,那么如果可以的话,请为现有的解决方案付费,因为从长远来看,它会更便宜。
潜在解决方案:
分布式进程的困难在于如何匹配未排序文件中的键。
在一个进程中运行这一切的问题是内存。
对于商业rec工具,我采用的方法是将csv保存到h2中的表中,并使用sql进行差异化。
h2在这方面比oracle快得多。
如果您的数据结构良好,您可以利用h2直接从csv加载的功能,如果您将结果保存在一个表中,您也可以将输出写入csv,或者您可以使用其他框架编写更结构化的输出,或者将结果流式传输到网页。
如果您的格式是xls(x)而不是csv,您应该对各种库进行性能测试以读取文件,因为在处理该大小时存在巨大差异。

2eafrhcq

2eafrhcq3#

我也一直在做同样的工作-
您可以使用pyspark/scala将csv文件加载到临时表中,并在创建的临时表上进行查询。

相关问题