代码之家  ›  专栏  ›  技术社区  ›  user3243499

如何在HDFS中将字符串写入文本文件?

  •  0
  • user3243499  · 技术社区  · 6 年前

    我有一个字符串,我想重写它并用scala编写一个hdfs文本文件。下面是我当前使用的代码。

    import java.io.{BufferedOutputStream, FileOutputStream}
    
    val fs = FileSystem.get(sc.hadoopConfiguration); 
    val filename = "hdfs://<IP>:9000/path/to/save/mytext.conf"
    val textout = fs.create(new Path(filename));
    
    val value1 = 23
    val value2 = 25
    
    val os = java.io.BufferedOutputStream(textout)
    os.write(("key1: " + value1 + "\n").getBytes("UTF-8"))
    os.write(("key2: " + value2 + "\n").getBytes("UTF-8"))
    
    os.close()
    

    不幸的是,上面的代码给出了以下错误:

    <console>:146: error: object java.io.BufferedOutputStream is not a value
           val os = java.io.BufferedOutputStream(textout)
                            ^
    

    如何将我的键值对保存在scala中hdfs的文本文件中?

    1 回复  |  直到 6 年前
        1
  •  0
  •   user7460598    6 年前
    val conf = new SparkConf()
    val sc = new SparkContext(conf)
    val array = Array("Key1: 23", "Key2: 25")
    sc.parallelize(array).repartition(1).saveAsTextFile("/tmp/myconf")