簡體   English   中英

從R中存儲在S3上的csv文件讀取標頭

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM