#include "daal.h"
#include "service.h"
using namespace daal::data_management;
const std::string csvFileName = "../data/batch/mixed_text_and_numbers.csv";
const CsvDataSourceOptions csvOptions = CsvDataSourceOptions::allocateNumericTable |
CsvDataSourceOptions::createDictionaryFromContext |
CsvDataSourceOptions::parseHeader;
void readDefault()
{
FileDataSource<CSVFeatureManager> ds(csvFileName, csvOptions);
ds.loadDataBlock();
printNumericTable(ds.getNumericTable(), "readDefault function result:");
}
void readOnlySpecifiedColumnIndices()
{
FileDataSource<CSVFeatureManager> ds(csvFileName, csvOptions);
ds.getFeatureManager()
.addModifier( features::list(0, 1, 5), modifiers::csv::automatic() );
ds.loadDataBlock();
printNumericTable(ds.getNumericTable(), "readOnlySpecifiedColumnIndices function result:");
}
void readOnlySpecifiedColumnNames()
{
FileDataSource<CSVFeatureManager> ds(csvFileName, csvOptions);
ds.getFeatureManager()
.addModifier( features::list("Numeric1", "Categorical0"), modifiers::csv::automatic() );
ds.loadDataBlock();
printNumericTable(ds.getNumericTable(), "readOnlySpecifiedColumnNames function result:");
}
void readUsingMultipleModifiers()
{
FileDataSource<CSVFeatureManager> ds(csvFileName, csvOptions);
ds.getFeatureManager()
.addModifier( features::list("Numeric1"), modifiers::csv::continuous() )
.addModifier( features::list("Text1", "Categorical1"), modifiers::csv::categorical() );
ds.loadDataBlock();
printNumericTable(ds.getNumericTable(), "readUsingMultipleModifiers function result:");
}
int main(int argc, char *argv[])
{
checkArguments(argc, argv, 1, &csvFileName);
readDefault();
readOnlySpecifiedColumnIndices();
readOnlySpecifiedColumnNames();
readUsingMultipleModifiers();
return 0;
}