#include "utils/ydhdfs.h" #include "triple.h" const char * input_dir = "/dblp_sorted"; const char * output_dir = "/dblp_merged"; struct dirReader { string inDir; hdfsFS fs; int numFiles; hdfsFile in; LineReader* reader; int cur; dirReader(const char * indir) { inDir = indir; fs = getHdfsFS(); hdfsFileInfo* fileinfo = hdfsListDirectory(fs, indir, &numFiles); if (fileinfo == NULL) { fprintf(stderr, "Failed to list directory %s!\n", inDir.c_str()); exit(-1); } hdfsFreeFileInfo(fileinfo, numFiles); cur=0; string fname = inDir + "/part_0"; cout<<"Processing "<readLine(); if (!reader->eof()) return reader->getLine(); else { hdfsCloseFile(fs, in); delete reader; cur++; if(cur