将数据加载到hdfs/hive之前的模式验证

rsaldnfx  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(399)

我是hadoop生态系统的新手,在将大量数据加载到hdfs之前,我需要bigdataMaven提供一些关于实现模式验证/确认的建议。
情况是:
我有一个具有给定模式的巨大数据集(其中有大约200个列标题)。此数据集将存储在配置单元表/hdf中。在将数据加载到hive表/hdfs之前,我希望对提供的数据执行模式级验证/确认,以避免在将数据加载到hdfs时出现任何不必要的错误/异常。例如,如果有人试图传递一个列数较少或较多的数据文件,那么在第一级验证时,这个加载失败。
实现同样目标的最佳途径是什么?
你好,布比什

cbwuti44

cbwuti441#

使用下面的实用程序每次根据您在暂存目录中以csv文件格式接收的架构创建临时表,然后应用一些条件来标识您是否有有效的列。最后加载到原始表中。
https://github.com/enahwe/csv2hive

68bkxrlz

68bkxrlz2#

既然有文件,就可以将它们添加到hdfs中,并在此基础上运行map reduce。在这里,您将保留每一行,以便可以验证列的数量、类型和任何其他验证。
当我提到jason/xml时,让map reduce识别该格式的记录会有一些开销。但是,对于验证,有一种模式验证,您可以强制执行,也可以使用模式为字段定义特定的值。因此,一旦模式准备就绪,您就可以进行解析(xml到java),然后将它们存储在另一个最终hdfs位置以供进一步使用(如hbase)。当您确定数据已被验证时,可以在此基础上创建配置单元表。

相关问题