2013-07-17 3 views
4

Spark에서, 예를 들어, 다음과 같은 일부 hadoop 구성 설정을 설정할 수 있습니다. 이 작품spark에서 textinputformat.record.delimiter를 설정하십시오.

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

는 복제 계수, I는이 패턴 (붙이는 "spark.hadoop을."일반 하둡 구성 속성에) 있다고 생각 것 또한 작동이 경우 가정하면 1 로 설정 textinputformat.record.delimiter을 위해 : 그러나

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

, 그 불꽃은 바로이 설정을 무시 보인다. 올바른 방법으로 textinputformat.record.delimiter을 설정합니까? textinputformat.record.delimiter을 설정하는 간단한 방법이 있습니다. 필자는 두 개의 개행으로 구분 된 레코드를 얻는 것만으로도 내 자신의 InputFormat을 쓰는 것을 피하고 싶습니다.

+0

어떤 버전의 hadoop을 사용하고 있습니까? – Noah

+0

Hadoop 1/CDH3 (http://spark-project.org/downloads/ [여기] 참조)과 함께 사전 빌드 된 spark-0.7.2 버전을 사용하고 있습니다. 나는 실제로 그것이 hadoop 1.0.4로 구축되었다는 것을 확신한다. – ptikobj

+1

나는 그것이 그 버전의 hadoop에 있는지 확신하지 않는다. 원하는 것을 지원하는 버전으로 다시 컴파일해야 할 수도있다. https : // issues .apache.org/jira/browse/HADOOP-7096 – Noah

답변

8

아래의 기능을 가진 일반 압축되지 않은 파일로 작업하고 있습니다.

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) 
} 
+0

사용하고 계신 hadoop 코어 버전을 공유해주십시오. –

+0

@SumitKumarGhosh는 CDH 4.4와 같았습니다. – Andrew

+1

Hadoop 0.23.x 및 2.x 버전이 필요합니다. [link] (http://stackoverflow.com/questions/12330447/paragraph-processing-for-hadoop/12351209#12351209) 2.2.0 ' 이 좋은 너무 ' org.apache.hadoop 하둡 클라이언트 - - ' 나는 다음과 같은 받는다는 종속성을 사용 12,384,291,org.apache.hadoop 하둡 맵리 듀스 클라이언트 코어 2.2.0 ' –

관련 문제