Загрузить файл в Azure Datalake Store из локального хранилища с помощью пакета SDK для Java.

Есть ли способ загрузить файлы из локальной сети в ADLS с помощью Java SDK? Я попытался использовать следующий код для загрузки, но код не компилируется, так как он говорит, что конструктор не виден.

com.microsoft.azure.datalake.store.Utils ut=new com.microsoft.azure.datalake.store.Utils(adlStoreclient);

ut.upload(filePathToUpload, fileToUpload, IfExists.OVERWRITE);

person Abhra Ray    schedule 14.02.2018    source источник
comment
Вы проверили официальный пример ? Поскольку ваш фрагмент кода сильно отличается от предоставленного образца....   -  person astaykov    schedule 14.02.2018


Ответы (2)


Я проверил официальный документ, есть методы create,list,delete и т. д., кроме методов upload и download в Java SDK.

Затем я просмотрел исходный код Azure Data Lake java SDK. , он также не содержит методов upload и download в классе ADLStoreClient.

Исходя из этой ситуации, я предлагаю вам использовать REST API для загрузки файла в ADL.

Вам необходимо следовать этому doc для загрузки данных в ADL через REST API. Как получить идентификатор приложения и секретный ключ, вы можете обратиться к официальный документ. Более подробные шаги для получения разрешения на доступ к озеру данных вы можете найти в другом Тема SO.

Получите пример кода токена доступа:

private static String clientId = "***";
private static String authTokenEndpoint = "https://login.microsoftonline.com/***/oauth2/token";
private static String clientKey = "***";

public static void main(String[] args) throws IOException {
        AccessTokenProvider provider = new ClientCredsTokenProvider(authTokenEndpoint, clientId, clientKey);
        String accessToken=provider.getToken().accessToken;
}

Затем используйте этот Загрузить данные, чтобы загрузить локальный файл в ADL.

Надеюсь, это поможет вам.

person Jay Gong    schedule 15.02.2018

Мне удалось решить проблему. SDK предоставляет способ загрузки файлов, как я упоминал в своем вопросе. Кроме того, я упомянул, что конструктор не был виден. Итак, я нашел методы загрузки из SDK здесь (https://github.com/Azure/azure-data-lake-store-java/blob/master/src/main/java/com/microsoft/azure/datalake/store/Utils.java) и реализовал ту же концепцию для потоковой передачи данных в ADLS из моего локального файла.

person Abhra Ray    schedule 15.02.2018