gpt4 book ai didi

scala - 我可以从 Spark 程序而不是 RDD 写入纯文本 HDFS(或本地)文件吗?

转载 作者:可可西里 更新时间:2023-11-01 14:13:14 27 4
gpt4 key购买 nike

我有一个 Spark 程序(在 Scala 中)和一个 SparkContext。我正在使用 RDDsaveAsTextFile 编写一些文件。在我的本地机器上,我可以使用本地文件路径,它与本地文件系统一起工作。在我的集群上,它适用于 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 方法看似写入纯文本,但它实际上是一种包含额外字节的二进制序列化格式。

关于scala - 我可以从 Spark 程序而不是 RDD 写入纯文本 HDFS(或本地)文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32952121/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com