美文网首页
Spark本地文件读写

Spark本地文件读写

作者: 学习之术 | 来源:发表于2018-10-03 21:04 被阅读143次

    当数据量大时,使用分布式的存储系统也会更可靠,所以使用 Spark 时所用到的源数据大多数会从 HDFS 或 Hbase 得到。

    但对于数据量较小的文件,比如在商品推荐系统中需要额外照顾某批商品,或者是算法中生成的一些关于类目的信息,又或者是粗排算法商品的排序值,我们完全可以把数据存在 driver 服务器中。

    除了读写更高效外,保存在本地的好处是可以更方便的查看和修改,需要时下载文件也会比下载 HDFS 文件方便。

    由于仅在 driver 服务器中进行读写操作,所以用 scala 就能完成任务,读写的两段函数如下。

    import java.io.{File, PrintWriter}
    import scala.io.Source
    
    object LocalFileOperator {
      /**
        * 保存数据至本地服务器
        * @param context
        * @param fileName
        */
      def writeFile(context: List[String],fileName: String): Unit ={
        val writer = new PrintWriter(new File(fileName))
        for (x <- context){
          writer.write(x)
          writer.write("\n")
        }
        writer.close()
      }
    
      /**
        * 从本地读取文件
        * @param fileName
        * @return
        */
      def readLocalFile(fileName: String): List[String] ={
        val src = Source.fromFile(fileName).getLines()
        (for (i <- src) yield  i.trim).toList
      }
    }
    

    相关文章

      网友评论

          本文标题:Spark本地文件读写

          本文链接:https://www.haomeiwen.com/subject/jfdtaftx.html