0

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

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

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

2 回答 2

0

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

于 2018-02-15T15:14:16.467 回答
0

我查看了官方文档,除了Java SDK 中的upload和方法外,还有创建、列出、删除方法等。download

然后我搜索了Azure Data Lake java sdk 源代码,它似乎也不包含Class中的uploadanddownload方法。ADLStoreClient

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

您需要按照此文档通过 REST API 将数据上传到 ADL。如何获取应用ID和秘钥可以参考官方文档。获得访问数据湖权限的更多详细步骤可以参考另一个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。

希望它可以帮助你。

于 2018-02-15T06:06:06.170 回答