Вам необходимо присоединиться к вашему вводу List[String]
как String
, соединенному с '\n'
:
List("banana apple strawberry", "Apple banana strawberry").mkString("\n")
res0: String = "banana apple strawberry\nApple banana strawberry"
Кроме того, FSDataOutputStream
, который вы создаете из *Метод 1009 *FileSystem.create
, на самом деле имеет метод write
, который позволяет напрямую записывать в файл hdfs.
Так что нет необходимости создавать поток BufferedOutputStream
.
Я привык держать этого помощника рядом:
import org.apache.hadoop.fs.{FileSystem, Path}
import org.apache.hadoop.conf.Configuration
def writeToHdfsFile(content: String, filePath: String): Unit = {
val outputFile = FileSystem.get(new Configuration()).create(new Path(filePath))
outputFile.write(content.getBytes("UTF-8"))
outputFile.close()
}
вместе с:
def writeToHdfsFile(seq: Seq[String], filePath: String): Unit =
writeToHdfsFile(seq.mkString("\n"), filePath)
, который можно назвать так:
writeToHdfsFile(
List("banana apple strawberry", "Apple banana strawberry"),
"/folder/test.YMSL"
)