2016-08-08 62 views
2

我一直在試圖使用data.table包,因爲它的很多比rhdfs包更快地讀取HDFS大的CSV文件分成R在我的經驗中。讀CSV文件導入的R - 丟失列名

我已經成功的與閱讀使用以下命令整個文件:

data <- fread("/usr/bin/hadoop fs -text /path/to/the/file.csv"), fill=TRUE) 

然後,我想只有在包含值​​「2MS-US」行讀取。我試着用grep做到這一點:

data <- fread("/usr/bin/hadoop fs -text /path/to/the/file.csv | grep '2MS-US'"), fill=TRUE) 

這將返回正確的行數,但它會刪除所有的標題。他們現在變成了「V1」,「V2」等。

根據此thread,使用grep時丟失列名的問題已在data.package 1.9.6中解決,但即使如此,我仍然遇到我正在使用1.9.7。對此有何想法?謝謝!

回答

3

使用sed,而不是固定的問題:

fread("hadoop fs -text /path/to/the/file.csv |sed -n '1p;/2MS-US/p'", fill=TRUE) 

1p部分打印的第一線,這是頭,所以這樣我能夠保持頭以及匹配的行串。