scala – 我可以从Spark程序而不是从RDD编写纯文本HDFS(或本地)
发布时间:2020-12-16 19:12:40 所属栏目:安全 来源:网络整理
导读:我有一个Spark程序(在 Scala中)和一个SparkContext.我正在用RDD的saveAsTextFile编写一些文件.在我的本地计算机上,我可以使用本地文件路径,它可以与本地文件系统一起使用.在我的群集上,它适用于HDFS. 我还想编写其他任意文件作为处理结果.我在本地计算机上将
我有一个Spark程序(在
Scala中)和一个SparkContext.我正在用RDD的saveAsTextFile编写一些文件.在我的本地计算机上,我可以使用本地文件路径,它可以与本地文件系统一起使用.在我的群集上,它适用于HDFS.
我还想编写其他任意文件作为处理结果.我在本地计算机上将它们写为常规文件,但希望它们在群集上进入HDFS. SparkContext似乎有一些与文件相关的方法,但它们似乎都是输入而不是输出. 我该怎么做呢? 解决方法
感谢marios和kostya,但是从Spark中将文本文件写入HDFS的步骤很少.
// Hadoop Config is accessible from SparkContext val fs = FileSystem.get(sparkContext.hadoopConfiguration); // Output file can be created from file system. val output = fs.create(new Path(filename)); // But BufferedOutputStream must be used to output an actual text file. val os = BufferedOutputStream(output) os.write("Hello World".getBytes("UTF-8")) os.close() 请注意,已建议的FSDataOutputStream是Java序列化对象输出流,而不是文本输出流. writeUTF方法似乎写了plaint文本,但它实际上是一个包含额外字节的二进制序列化格式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容