2017-03-12 1 views
0

우리의 csv 파일 형식은^A를 우리의 열 구분 기호로,^B를 줄 구분 기호/레코드 구분 기호로 사용합니다. 그래서 나는 dataframe을 만들려면 다음 식으로 databricks 스파크 CSV 라이브러리를 사용하고 있습니다 : 헤더 옵션에 대해Databricks Spark CSV 헤더 구분 기호

val dataFrame = cassSqlContext.read.format("com.databricks.spark.csv") 
     .option("header", "true").option("inferSchema", "true") 
     .option("delimiter", "\u0001").load(file) 

스파크 CSV에 대한 문서를보고,이 말한다 : 첫 true로 설정하면 파일의 행은 열의 이름을 지정하는 데 사용되며 데이터에 포함되지 않습니다. 모든 유형은 문자열로 간주됩니다. 기본값은 false입니다.

그러나 우리는 \ n을 사용하지 않고 대신^B를 사용합니다. 그래서 우리의 헤더가 기본 \ n을보다는뿐만 아니라 구분 기호를 가지고 스파크 CSV 라이브러리를 알 수있는 방법이있다

+0

Spark로 CSV를 구문 분석 할 때 레코드 구분 기호를 수정할 수있는 방법이 없습니다. 측면 노드에서 CSV 구문 분석은 이제 스파크의 일부입니다 (올바르게 다시 호출하면 2.0부터 시작). 'spark.read.csv ("/ tmp/my.csv")' – BenFradet

+0

네,하지만 현재 우리는 스파크 1.6을 사용하고 있습니다. 그러나 해결책을 찾았습니다. – Ahmed

답변

1

내 sparkContext이 다음 줄을 추가하여 작업 위의 코드를 얻을 수있었습니다 :

sparkContext.hadoopConfiguration.set ("textinputformat.record.delimiter", "\ u0002")

관련 문제