如何跳過Spark中CSV文件的標題?假設我給三個文件路徑指向要讀取的Spark上下文,并且每個文件在第一行中都有一個模式。我們如何從頭文件中跳過架構線?val rdd=sc.textFile("file1,file2,file3")現在,我們如何跳過此rdd的標題行?
3 回答
牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
如果第一條記錄中只有一個標題行,那么過濾它的最有效方法是:
rdd.mapPartitionsWithIndex {
(idx, iter) => if (idx == 0) iter.drop(1) else iter
}如果當然有許多文件中包含許多標題行,這沒有用。事實上,你可以通過這種方式結合三個RDD。
你也可以寫一個filter只匹配一個可能是標題的行。這很簡單,但效率較低。
Python等價物:
from itertools import islice rdd.mapPartitionsWithIndex( lambda idx, it: islice(it, 1, None) if idx == 0 else it )
犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
data = sc.textFile('path_to_data')header = data.first() #extract header
data = data.filter(row => row != header) #filter out header添加回答
舉報
0/150
提交
取消
