Crash on load project

There’s no need in creating UClass. you already have it — it’s UDataTable, it’s UE’s built-in data class. What you should create is a UStruct derived from FTableRowBase. You just create header file in your include folder (Source/YourProject or Source/YourProject/Public or else if you have more complex hierarchy) write a UStruct code derived from FTableRowBase and fill it with your custom set of UProperties according to your CSV file. The documentation says about it clearly:

Before a designer can import a CSV
file into a DataTable, a programmer
has to create the row container
telling the engine how to interpret
the data. These tables consist of
column names that have a 1:1 mapping
to a given code based UStruct and its
variables, which must inherit from
FTableRowBase to be recognized by the
importer.

The first column is expected to be
named Name and contains the names by
which each row is accessed for use in
game. Subsequent columns have a
variable name for a heading and below,
in the same column, the data for that
row/column intersection.