In that case I don’t really understand the overall use case.
IterableDataset is used for data “streams”, i.e. Datasets, which cannot directly be indexed.
The map-style datasets define a __getitem___ as well as a length, so that indexing via dataset[index] would load the corresponding sample. random_split uses this property to split the indices into the desired ranges and returns the Subsets.
However, based on your description you cannot calculate the length and don’t have a __getitem__ (so the IterableDataset seems to be the right choice). Nevertheless you would like to “split” this dataset using indices, which doesn’t fit your described use case, since you can’t use indices to load samples.