加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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文本,但它实际上是一个包含额外字节的二进制序列化格式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读