blob: 86d05d572d8375e15428aae410ba3f9b91641dea [file] [log] [blame]
package io.prediction.commons.scalding.settings.file
import com.twitter.scalding._
import cascading.pipe.Pipe
import cascading.flow.FlowDef
//import io.prediction.commons.scalding.OfflineEvalDataFile
import io.prediction.commons.scalding.settings.OfflineEvalResultsSource
/**
* File Format:
* <eval id>\t<metric id>\t<algo id>\t<score>\t<iteration>
*
* Example:
* 8 4 5 0.123456 3
*/
class FileOfflineEvalResultsSource(path: String) extends Tsv(
p = path + "/offlineEvalResults.tsv" //OfflineEvalDataFile(appId, engineId, evalId, metricId, algoId, name="offlineEvalResults.tsv")
) with OfflineEvalResultsSource {
import com.twitter.scalding.Dsl._ // get all the fancy implicit conversions that define the DSL
override def getSource: Source = this
override def writeData(evalidField: Symbol, metricidField: Symbol, algoidField: Symbol, scoreField: Symbol, iterationField: Symbol, splitsetField: Symbol)(p: Pipe)(implicit fd: FlowDef): Pipe = {
val dataPipe = p.project(evalidField, metricidField, algoidField, scoreField, iterationField, splitsetField)
.write(this)
dataPipe
}
}