private static Multimap<Long,RecommendedItem> readAndCopyDataFiles(File dataDir, File tempDir) throws IOException {
Multimap<Long,RecommendedItem> data = ArrayListMultimap.create();
for (File dataFile : dataDir.listFiles(new PatternFilenameFilter(".+\\.csv(\\.(zip|gz))?"))) {
log.info("Reading {}", dataFile);
int count = 0;
for (CharSequence line : new FileLineIterable(dataFile)) {
Iterator<String> parts = COMMA_TAB_SPLIT.split(line).iterator();
long userID = Long.parseLong(parts.next());
long itemID = Long.parseLong(parts.next());
if (parts.hasNext()) {
String token = parts.next().trim();