我有一個結構化的這樣一個CSV文件:如何在使用PySpark作爲數據框讀取CSV文件時跳過行?
Header
Blank Row
"Col1","Col2"
"1,200","1,456"
"2,000","3,450"
我在閱讀本文件中的兩個問題。
- 我想忽略頁眉和忽略值內
- 的逗號的空白行不是分隔
這裏是我的嘗試:
df = sc.textFile("myFile.csv")\
.map(lambda line: line.split(","))\ #Split By comma
.filter(lambda line: len(line) == 2).collect() #This helped me ignore the first two rows
然而,這是行不通的,因爲值內的逗號被當作分隔符來讀取,並且len(line)
返回4而不是2.
我嘗試另一種方法:
data = sc.textFile("myFile.csv")
headers = data.take(2) #First two rows to be skipped
的想法是,然後使用濾波器,而不是讀出的標頭。但是,當我試圖打印標題時,我得到了編碼值。
[\x00A\x00Y\x00 \x00J\x00u\x00l\x00y\x00 \x002\x000\x001\x006\x00]
什麼是讀取CSV文件並跳過前兩行的正確方法?
不錯@zlidime! – titipata
csv。讀取器拋出錯誤:行包含空字節 –
我通過調用'csv.reader([l.replace('\ 0','')in line],delimiter =',',quotechar ='''')來修復它。 ' –