It’s impossible to split tensorflow dataset object by passing it to train_test_split from sklearn. You can choose the number of validation samples, which should be int number, and use the following example:
valid_ds = datasetfinal.take(n_samples)
train_ds = datasetfinal.skip(n_samples)

It does what the method says: takes first n_samples from the dataset and skips all the rest or skips the first n_samples and takes all the rest.