private static void SaveIdvToFile(IDataView idv, string path, IHost host) { if (path == STDNULL) { return; } var extension = Path.GetExtension(path); IDataSaver saver; if (extension != ".csv" && extension != ".tsv" && extension != ".txt") { saver = new BinarySaver(host, new BinarySaver.Arguments()); } else { var saverArgs = new TextSaver.Arguments { OutputHeader = true, OutputSchema = true, Dense = true, Separator = extension == ".csv" ? "comma" : "tab" }; saver = new TextSaver(host, saverArgs); } using (var fs = File.OpenWrite(path)) { saver.SaveData(fs, idv, Utils.GetIdentityPermutation(idv.Schema.Count) .Where(x => !idv.Schema[x].IsHidden && saver.IsColumnSavable(idv.Schema[x].Type)) .ToArray()); } }
/// <summary> /// Saves the IDV to file based on its extension /// </summary> private void SaveDataView(IDataView idv, string path, string extension) { Contracts.CheckValue(idv, nameof(idv)); IDataSaver saver; if (extension != ".csv" && extension != ".tsv" && extension != ".txt") { saver = new BinarySaver(_host, new BinarySaver.Arguments()); } else { var saverArgs = new TextSaver.Arguments { OutputHeader = true, OutputSchema = false, Separator = extension == ".csv" ? "comma" : "tab" }; saver = new TextSaver(_host, saverArgs); } using (var handle = _host.CreateOutputFile(path)) using (var fs = handle.CreateWriteStream()) { saver.SaveData(fs, idv, Utils.GetIdentityPermutation(idv.Schema.ColumnCount) .Where(x => saver.IsColumnSavable(idv.Schema.GetColumnType(x))).ToArray()); } }
private static void SaveIdvSchemaToFile(IDataView idv, string path, IHost host) { var emptyDataView = new EmptyDataView(host, idv.Schema); var saverArgs = new TextSaver.Arguments { OutputHeader = false, OutputSchema = true, Dense = true }; IDataSaver saver = new TextSaver(host, saverArgs); using (var fs = File.OpenWrite(path)) { saver.SaveData(fs, emptyDataView, Utils.GetIdentityPermutation(emptyDataView.Schema.Count) .Where(x => !emptyDataView.Schema[x].IsHidden && saver.IsColumnSavable(emptyDataView.Schema[x].Type)) .ToArray()); } }