I am trying to put data from a database into a list and then loading it into an IDataView, but the IDataView is empty every time. Here is the problem code:
(IDataView training, IDataView test) LoadData(MLContext mlContext)
{
var trainData = new List<ModelInput>();
try
{
using var conn = new MySqlConnection(connection);
conn.Open();
var selectCmd = "SELECT user_id, movie_id, review_value FROM review";
var command = new MySqlCommand(selectCmd, conn);
var reader = command.ExecuteReader();
while (reader.Read())
{
trainData.Add(new ModelInput
{
user_id = reader.GetInt32(0),
movie_id = reader.GetInt32(1),
review_value = reader.GetFloat(2),
});
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
var testDataPath = "recommendation-ratings-test.csv";
IDataView trainingDataView = mlContext.Data.LoadFromEnumerable<ModelInput>(trainData);
IDataView testDataView = mlContext.Data.LoadFromTextFile<ModelInput>(testDataPath, hasHeader: true, separatorChar: ',');
return (trainingDataView, testDataView);
}
I cannot find anything only about this problem and about how to solve it. Please help.