SparkR get distinct values from Dataframe fast

I’m trying to get the distinct values from a SparkDataframe using below statement.

distVals <- collect(distinct(select(dataframeName, ‘Column_name’)))

To execute this statement, it takes around 30-40 minutes. Is there any better way to perform this?

Also there is not much time difference in collecting full dataframe and collecting distinct values. So why is it suggested not to collect entire dataset? Is it only because of size of data?