示例#1
0
        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());
            }
        }
示例#2
0
        /// <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());
                }
        }
示例#3
0
        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());
            }
        }