[英]Reading headers from csv file stored on S3 in R
我正在嘗試從存儲在s3上的csv文件讀取標頭。 我嘗試了幾種方法來做到這一點。 但是,我所有的方法都從R中的s3本地下載csv,然后讀取標頭。 它的效率不高。
我的嘗試:
dt <- aws.s3::s3read_using(FUN = fread(headers=T,nrows = 1),
bucket = "bucket_name/path/,
object = "abc.csv"))
cols <- colnames(dt)
第二次嘗試:
# Getting file locally and then reading headers.
system(paste("s3cmd get --force -v ", s3Path, s3FileName, " ", s3FileName, sep = ""))
df <- data.table::fread(s3FileName, ...)
cols <- colnames(df)
我知道可能會有一些有效的方法。 任何建議將不勝感激。 我特別希望在R中做到這一點。
簡短答案:S3是文檔存儲,而不是文件系統。 您不能(*)對遠程S3對象執行文件系統操作。
更長,更正確的答案:您不必每次都下載整個文件。 您可以使用s3 API來提取文件的一部分,如所示。
下拉每個文件的前n kb,其中n足夠大,可以始終為您提供標題,然后按常規方式處理這些標題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.