返回

提问 添加收藏

新手刚接触spark ,请教基础问题,spark 如何写二进制文件到hdfs

伊凡02 发布于 2018年03月14日 (共有0个回帖)

我目前做一个spark 应用开发,

读取一些点云数据(二进制格式),随后做一系列处理后

保存为普通的二进制文件,保存在 hdfs上边,

 

我使用python 开发,通过hadoop 文件api 写文件到hdfs

    Path = sc._gateway.jvm.org.apache.hadoop.fs.Path
    FileSystem = sc._gateway.jvm.org.apache.hadoop.fs.FileSystem
    Configuration = sc._gateway.jvm.org.apache.hadoop.conf.Configuration

def save_file_content(fileContent, fileName, savePath, Path, FileSystem, Configuration):
      fs = FileSystem.get(Configuration())
      output = fs.create(Path(savePath + "/" + fileName))
  
      output.write(bytearray(fileContent))
      output.close()
  

但是这个只能在driver 机器执行,我把rdd 在 driver 机器依次遍历写入,

数据量大时会内存溢出,请问有什么更好的方向写入hdfs 吗?

文明上网,理性发言
客户端 Android iPhone WP7