| 173 | } |
| 174 | |
| 175 | inline static TVector<float> ProcessNumVector(TStringBuf token, char delimiter, ui32 featureId) { |
| 176 | TVector<float> result; |
| 177 | |
| 178 | ui32 fieldIdx = 0; |
| 179 | for (TStringBuf part: StringSplitter(token).Split(delimiter)) { |
| 180 | float value; |
| 181 | CB_ENSURE( |
| 182 | TryFloatFromString(part, /*parseNonFinite*/true, &value), |
| 183 | "Sub-field #" << fieldIdx << " of numeric vector for feature " << featureId |
| 184 | << " cannot be parsed as float. Check data contents or column description" |
| 185 | ); |
| 186 | result.push_back(value); |
| 187 | ++fieldIdx; |
| 188 | } |
| 189 | |
| 190 | return result; |
| 191 | } |
| 192 | |
| 193 | void TCBDsvDataLoader::ProcessBlock(IRawObjectsOrderDataVisitor* visitor) { |
| 194 | visitor->StartNextBlock(AsyncRowProcessor.GetParseBufferSize()); |
no test coverage detected