我是Hadoop生态系统的新手,我需要Bigdata专家提出的关于在将大量数据加载到hdfs之前实现模式验证/验证的建议。
场景是:
我有一个给定架构的大型数据集(大约有200个 其中的列标题)。该数据集将存储在Hive中 表/ HDFS。在将数据加载到我想要的hive table / hdfs之前 对提供的数据执行模式级别验证/验证 在将数据加载到hdfs时避免任何不需要的错误/异常。 有些人试图传递数量较少或更多的数据文件 然后在第一级验证中的列数 加载失败。
实现同样目标的最佳方法是什么?
此致 布佩希
答案 0 :(得分:0)
由于您有文件,您可以将它们添加到HDFS中,并在此之上运行map reduce。在这里,您将对每一行进行保留,以便您可以验证列数,类型和任何其他验证。
当我提到jason / xml时,会有一些轻微的开销使map减少识别该格式的记录。但是,对于验证,您可以强制执行模式验证,并且还仅使用模式为字段定义特定值。因此,一旦模式准备就绪,您的解析(xml到java)然后将它们存储在另一个最终HDFS位置以供进一步使用(如HBase)。当您确定数据已经过验证时,您可以在其上创建Hive表。
答案 1 :(得分:0)
使用以下实用程序每次都根据您在登台目录中以csv文件格式收到的架构创建临时表,然后应用一些条件来确定您是否有有效列。最后加载到原始表中。