According to the Spark official documentation's Output Operations on DStreams:
Output operations allow DStream's data to be pushed out to external systems like a database or a file systems. Since the output operations actually allow the transformed data to be consumed by external systems, they trigger the actual execution of all the DStream transformations (similar to actions for RDDs).
Basically without an output operator you have "no output streams registered”, so there is nothing to execute. Without output operator on DStream no computation is invoked.
And when an output operator is called, it triggers the computation of a stream.
So, you have to invoke any of below method on stream:
print()
foreachRDD(func)
saveAsObjectFiles(prefix, [suffix])
saveAsTextFiles(prefix, [suffix])
saveAsHadoopFiles(prefix, [suffix])
Also, you can apply any transformations first and then output functions too if required.