Используйте saveAsTextFile()
метод RDD, как показано ниже:
val strRdd = res1.map{case(userid,tags)=>(s"${userid}${"\t"}${tags.topicInterests.map(_.id).mkString(",")}")}
strRdd.saveAsTextFile("/home/test_user/result")
Обратите внимание, что метод saveAsTextFile
принимает путь (абсолютный или относительный) к папке / каталогу , а нефайл .Данные СДР будут записаны в виде файлов деталей внутри данного каталога.В этом случае будет создан каталог с именем result
, в котором будут находиться файлы деталей.
В файле strRdd
будет столько файлов деталей, сколько и разделов.Если путь /home/test_user/result
уже существует, ваш код потерпит неудачу.Таким образом, вам придется использовать только несуществующий каталог.
Дополнительная информация: тот же метод saveAsTextFile
также работает в других файловых системах, таких как HDFS, S3 и т. Д., Передавая URL-адрес целевым каталогам, а не простопути.