#r #azure-storage #gzip
Вопрос:
Я хочу прочитать А. csv.gz из контейнера больших двоичных объектов Azure, но я борюсь с форматом .gz. Когда я загружаю файл локально, а затем читаю его в R с помощью readr, он работает нормально. Но когда я пытаюсь прочитать его из Azure, файл не читается корректно. Похоже, что файл не распакован. Это код, который я использовал для чтения локального файла (также read_csv2 работает нормально):
df<-read_delim("filename.csv.gz", delim=";",col_names=c('epoch','SegmentID','TT','Speed','LoS','Coverage'),
col_types=cols(epoch = col_integer(),SegmentID = col_integer(),TT = col_integer(),Speed = col_integer(),LoS = col_integer(),Coverage = col_integer()))
И это то, что я пытаюсь сделать, чтобы получить файл из Azure:
blob_urls_with_sas<-paste("https://name.blob.core.windows.net","/container/filename.csv.gz",
sas_token, sep="")
dfAzure<-read_delim(blob_urls_with_sas,delim=";",
col_names=c('epoch','SegmentID','TT','Speed','LoS','Coverage'),
col_types=cols(epoch = col_integer(),SegmentID = col_integer(),TT = col_integer(),
Speed = col_integer(),LoS = col_integer(),Coverage =col_integer()))
или из пакета AzureStor
test <- storage_read_delim(cont, "filename.csv.gz",delim=";",
col_names=c('epoch','SegmentID','TT','Speed','LoS','Coverage'), col_types=cols(epoch = col_integer(),SegmentID = col_integer(),TT = col_integer(),
Speed = col_integer(),LoS = col_integer(),Coverage = col_integer()))
Комментарии:
1. использовать
fread()
?2. Спасибо, это работает.
Ответ №1:
Одним из вариантов было бы использовать fread()
файл из data.table, который естественным образом обрабатывает .gz
файлы. Убедитесь, что вы установили R.utils
сначала.