Определите последний файл на пути к озеру данных Azure - R / SparkR / sparklyr - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь написать общий c код, который всегда будет идентифицировать и получать доступ к последнему файлу паркета.

Я использую RStudio Server в кластере Databricks, который обращается к Azure Data Lake Storage , Я обычно извлекаю данные, используя пакет DBI, как показано ниже.

df <- dbGetQuery(sc, "select *
from parquet.`/folder1/folder2/file.parquet`")

Однако я столкнулся с путем, который представляет собой комбинацию года, месяца, дня и некоторого случайного значения alphanumeri c. Например, /folder1/2020/03/29/abc123.parquet. Случайное значение alphanumeri c, являющееся именем файла, отличается для каждой даты, и обычно в день есть два файла.

Я могу обработать часть даты, используя today <- format(Sys.Date(), "%Y/%m/%d") и передавая "сегодня" в запросе SQL. Но я не уверен, как определить имя файла и передать его. Я попытался использовать list.files(path = "/folder1/2020/03/29", full.names=TRUE,recursive=TRUE), но он вернул пустой символ. Кажется, это не работает на удаленном пути. Есть ли способ решить эту проблему?

PS. Если определить последнюю версию сложно, я могу согласиться на любой из двух файлов в папке с датами, например, выполнив max(filename). Важным моментом является написание обобщенного c кода, который сгенерирует для меня имя файла (и, в конечном счете, имя пути), против необходимости каждый раз искать ADLS для поиска правильного пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...