Значения двух созданных вами чисел выглядят одинаковыми, но не одинаковыми . Это очевидно, если вы сделаете подсчет элементов в обоих числах как
txt.collect().count(!_.isEmpty)
//res0: Int = 3
strRDD.collect().count(!_.isEmpty)
//res1: Int = 1
Результат должен быть пустым СДР, но это не так.
По этой причине результаты txt.subtract(strRDD)
и strRDD.subtract(txt)
не совпадают
val txt=sc.textFile("/tmp/textFile.txt")
дает каждую строку как отдельный элемент в txt
СДР
val str="This\nfile is\nallowed"
val strRDD=sc.parallelize(List(str))
дает один \n
отдельный элемент в strRDD
RDD
Надеюсь, объяснение понятно