2017-01-30 4 views
0

고정 폭 텍스트 파일을 구문 분석하려고합니다.pyspark 구문 분석 텍스트 파일

00101292017you1234 
00201302017 me5678 

내가 sc.textFile (경로)를 사용하여 RDD에 텍스트 파일을 읽을 수 있습니다

내 텍스트 파일은 다음과 같습니다 나는 행 ID, 날짜, 문자열 및 정수가 필요합니다 . 구문 분석 된 RDD와 스키마를 사용하여 createDataFrame을 만들 수 있습니다. 두 단계 사이를 파싱하는 것입니다.

답변

0

스파크의 substr 기능은 예를 들어, 고정 폭 열을 처리 할 수 ​​있습니다 : 당신이 포맷하고 정상 스파크 dataframe 같이 사용할 수 있습니다

+---+--------+------+-------+ 
| id| date|string|integer| 
+---+--------+------+-------+ 
|001|01292017| you| 1234| 
|002|01302017| me| 5678| 
+---+--------+------+-------+ 

갈라 데 열 :

df = spark.read.text("/tmp/sample.txt") 
df.select(
    df.value.substr(1,3).alias('id'), 
    df.value.substr(4,8).alias('date'), 
    df.value.substr(12,3).alias('string'), 
    df.value.substr(15,4).cast('integer').alias('integer') 
).show() 

이에서를 발생합니다.

+0

# df = sqlContext.read.text ("blah.txt") sqlContext를 사용해야했습니다. 그런 다음 효과가있었습니다. 문맥에 대해 조금 배워야한다고 생각합니다. 하지만 그렇지 않으면 대답했습니다. –

+0

'spark'는 버전 2.0 이상의 spark 세션을 의미합니다. 만약 당신이 1.6 이하를 사용한다면 당신은'sqlContext'를 사용할 필요가 있습니다. 그러나 데이터에 접근한다는 측면에서 보면 꽤 똑같습니다. – Mariusz

관련 문제