복붙노트

[HADOOP] spark에서 textinputformat.record.delimiter 설정하기

HADOOP

spark에서 textinputformat.record.delimiter 설정하기

Spark에서는, 예를 들어, 다음과 같은 몇 가지 hadoop 설정을 설정할 수 있습니다.

System.setProperty("spark.hadoop.dfs.replication", "1")

이 작업을 수행하면 복제 계수가 1로 설정됩니다. 이 경우를 가정하면이 패턴 (일반 "hadoop 구성 속성"에 "spark.hadoop"이 붙음)이 textinputformat.record.delimiter :

System.setProperty("spark.hadoop.textinputformat.record.delimiter", "\n\n")

그러나 스파크가이 설정을 무시하는 것 같습니다. textinputformat.record.delimiter를 올바른 방법으로 설정합니까? textinputformat.record.delimiter를 설정하는 간단한 방법이 있습니까? 필자는 두 개의 개행으로 구분 된 레코드를 얻는 것만으로도 내 자신의 InputFormat을 작성하는 것을 피하고 싶습니다.

해결법

  1. ==============================

    1.나는 아래의 기능을 가진 평범한 압축되지 않은 파일들로 작업하고있다.

    나는 아래의 기능을 가진 평범한 압축되지 않은 파일들로 작업하고있다.

    import org.apache.hadoop.io.LongWritable
    import org.apache.hadoop.io.Text
    import org.apache.hadoop.conf.Configuration
    import org.apache.hadoop.mapreduce.lib.input.TextInputFormat
    
    def nlFile(path: String) = {
        val conf = new Configuration
        conf.set("textinputformat.record.delimiter", "\n")
        sc.newAPIHadoopFile(path, classOf[TextInputFormat], classOf[LongWritable], classOf[Text], conf)
          .map(_._2.toString)
    }
    
  2. from https://stackoverflow.com/questions/17692857/setting-textinputformat-record-delimiter-in-spark by cc-by-sa and MIT license