在很多情况下,会需要将批量生成(如按天生成的记录)导入到HIVE中。针对这种应用场景,进行实验。
首先需要进行文件目录的遍历,借助SCALA强大的函数式编程能力,利用ARRAY中的MAP函数进行操作即可。
如函数如下:
def LoadIntoHive(sc:HiveContext,dir:String):Unit= { var cdrDirectory = new File(dir) if(cdrDirectory.exists() && cdrDirectory.isDirectory()) { //## each file, invoke ProcessCDRFile function cdrDirectory.listFiles().map(ProcessCDRFile(sc,_)) } }
那么在函数ProcessCDRFile中,需要指定如何导入HIVE的语句,即可实现对指定类型文件按照建表的方式进行导入到HIVE中。