using System.Diagnostics;
public static void Main()
string path = Environment.CurrentDirectory + @"\datafile.txt";
string createText = "ProductID,CoPurchaseProductID" + Environment.NewLine
+ "55006911127001,55006910976001" + Environment.NewLine
+ "55006910976001,55006911127001" + Environment.NewLine
+ "55006911328001,55006909963001" + Environment.NewLine
+ "55006907339001,55006909963001" + Environment.NewLine;
File.WriteAllText(path, createText);
MLContext mlContext = new MLContext();
var traindata = mlContext.Data.LoadFromTextFile(path: path,
new TextLoader.Column("Label", DataKind.Single, 0),
new TextLoader.Column(name:nameof(ProductEntry.ProductID), dataKind:DataKind.UInt64, source: new [] { new TextLoader.Range(0) }, keyCount: new KeyCount(99999999999999)),
new TextLoader.Column(name:nameof(ProductEntry.CoPurchaseProductID), dataKind:DataKind.UInt64, source: new [] { new TextLoader.Range(1) }, keyCount: new KeyCount(99999999999999))
var table = ToDataTable(traindata);
public class ProductEntry
[KeyType(count: 99999999999999)]
public Int64 ProductID { get; set; }
[KeyType(count: 99999999999999)]
public Int64 CoPurchaseProductID { get; set; }
private static DataTable ToDataTable(IDataView dataView)
var preview = dataView.Preview();
dt.Columns.AddRange(preview.Schema.Select(x => new DataColumn(x.Name)).ToArray());
foreach (var row in preview.RowView)
foreach (var col in row.Values)
private static void ShowTable(DataTable table)
foreach (DataColumn col in table.Columns)
Console.Write(col.ColumnName + " ");
foreach (DataRow dr in table.Rows)
foreach (var item in dr.ItemArray)
Console.Write(item + " ");