У меня есть набор данных, который находится в виде отдельных вложенных карт, а его тип Scala является:Как преобразовать карту, чтобы Спарк РДД
Map[String, (LabelType,Map[Int, Double])]
Первый String
ключ представляет собой уникальный идентификатор для каждого образца , а значение представляет собой кортеж, который содержит метку (которая равна -1 или 1), и вложенную карту, которая является разреженным представлением ненулевых элементов, которые связаны с образцом.
Я хотел бы загрузить эти данные в Spark (используя MUtil), а также обучить и протестировать некоторые алгоритмы машинного обучения.
Легко написать эти данные в файл с разреженным кодированием LibSVM, а затем загрузить его в Spark:
writeMapToLibSVMFile(data_map,"libsvm_data.txt") // Implemeneted some where else
val conf = new SparkConf().setAppName("DecisionTree").setMaster("local[4]")
val sc = new SparkContext(conf)
// Load and parse the data file.
val data = MLUtils.loadLibSVMFile(sc, "libsvm_data.txt")
// Split the data into training and test sets
val splits = data.randomSplit(Array(0.7, 0.3))
val (trainingData, testData) = (splits(0), splits(1))
// Train a DecisionTree model.
Я знаю, что это должно быть так же легко, непосредственно загрузить переменную data
из data_map
, но я не знаю как.
Любая помощь приветствуется!
Пожалуйста, обратите внимание, что «libsvm_data.txt» должен быть записан в файл первым, который я хочу избежать. – Alt
Это правда, его следует избегать. – evgenii