【问题标题】:Upload file to Azure Datalake Store from local using Java SDK使用 Java SDK 从本地将文件上传到 Azure Datalake Store
【发布时间】:2018-02-15 23:14:16
【问题描述】:

有没有办法使用 Java SDK 将文件从本地上传到 ADLS?我尝试使用以下代码上传,但代码没有被编译,因为它说构造函数不可见。

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

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

【问题讨论】:

  • 你查过官方sample吗?因为您的代码 sn-p 与提供的示例有很大不同......

标签: java azure azure-data-lake azure-java-sdk


【解决方案1】:

我检查了official doc,除了Java SDK中的uploaddownload方法外,还有create、list、delete等方法。

然后我搜索了 Azure Data Lake java sdk source code ,它似乎也不包含 ADLStoreClient 类中的 uploaddownload 方法。

基于这种情况,我建议您使用 REST API 将文件上传到 ADL。

您需要按照此doc 通过 REST API 将数据上传到 ADL。如何获取应用ID和秘钥可以参考official document。获取数据湖访问权限的更多详细步骤可以参考另一个SO thread

获取访问令牌示例代码:

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;
}

然后使用此Upload Data 步骤将您的本地文件上传到 ADL。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    我设法解决了这个问题。 SDK 提供了一种上传文件的方法,就像我在问题中提到的那样。另外,我曾提到构造函数是不可见的。因此,我在这里 (https://github.com/Azure/azure-data-lake-store-java/blob/master/src/main/java/com/microsoft/azure/datalake/store/Utils.java) 找到了来自 sdk 的上传方法,并实现了相同的概念,将数据从我的本地文件流式传输到 ADLS。

    【讨论】:

      猜你喜欢
      • 2021-10-14
      • 2020-06-28
      • 1970-01-01
      • 2021-10-19
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 2021-02-05
      相关资源
      最近更新 更多