apache—使用spark submit将数据写入文本文件不起作用

k4emjkb1  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(155)

我有一套数据,正在根据我的要求扩展使用Spark。扩展的数据(在循环中运行)将写入hdfs中的文本文件中,这样做时我会遇到问题。只有前两条记录被写入,然后就失败了。
下面是我用来处理和写入文本文件的代码:

def Hdfswrite(record:String)
        {
        //val timestamp = new java.text.SimpleDateFormat("yyyyMMdd-HH").format(new java.util.Date())
        val file = "/user/bhkp/sparkoutput6/sparkoutput12" + ".txt"
        val line = "\n" + record
        val config = new Configuration()
        val fs = FileSystem.get(config)
try
        {
        val writer = fs.append(new Path(file))
        writer.write(line.getBytes)
        writer.close
        }
        catch
        {
          case t: Throwable => { val writer = fs.create(new Path(file))
          writer.write(line.getBytes)
          writer.close
          }
        }
        }
  def main(args: Array[String]){
    val tokenized = sc.textFile("/user/bhkp/hv_tables/sparktestdata12.txt").map(rec => (rec.split("\\^",-1)))
    tokenize.foreach(transfer)

  }

我得到以下错误:org.apache.hadoop.ipc.remoteexception(java.io.filenotfoundexception):id不匹配。请求id和保存的id。
我不确定问题发生在哪里,因为数据是在输入文件只有2条记录时写入的,但在记录计数为3或更多时开始失败。
当我尝试打印输出时,它工作得非常好。
我很困惑。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题