我正在尝试从我的 Java 应用程序连接到 Microsoft Share Point。Microsoft Graph SDK for Java 的文档不是很清楚。
我正在尝试启动 Graph 客户端,同时通过自定义 GUI 或配置文件提供所需的凭据。
我正在尝试按照以下方式进行但可以
IGraphServiceClient client = GraphServiceClient.builder().authenticationProvider(authenticationProvider).buildClient();
Run Code Online (Sandbox Code Playgroud)
我需要“authenticationProvider”对象是一个实现 IAuthenticationProvider 的类,但是它不清楚要添加什么参数或如何创建这个对象。有没有人以前尝试过这个,构建客户端并提供所需凭据的正确方法是什么?
在我的 Java 应用程序中,我有一个文件系统层的实现,其中我的文件类是 Hadoop 文件系统方法的包装器。我正在从hadoop3-1.9.17升级到hadoop3-2.2.8,并且我正在使用新版本的阴影 jar 。
我的 File 类具有写入、读取等方法
class File {
private String path;
private FileSystem fs;
}
Run Code Online (Sandbox Code Playgroud)
这是我的 write 方法的实现方式
@Override
public OutputStream write(boolean overwriteIfExists) throws IOException {
return fs.create(path, overwriteIfExists);
}
Run Code Online (Sandbox Code Playgroud)
还有我的阅读方法:
@Override
public InputStream read() throws IOException {
return fs.open(path);
}
Run Code Online (Sandbox Code Playgroud)
我有一个性能测试用例,我在上面的文件系统实现上运行,它使用org.apache.hadoop.fs.FileSystem
测试运行创建许多线程,每个线程创建一个具有特定路径(即 gs://some-bucket/objectX)的 File 类实例,并且每个线程运行相同的操作,读取、重命名、检查存在等。
我在两个版本的 Hadoop 连接器上运行了多次相同的测试,新的 [2.2.8] 显示整体执行时间较慢(几乎是旧连接器时间的 2 倍)。
以下是使用每个连接器版本时每个操作的平均执行时间的比较:
operation, hadoop3-1.9.17, hadoop3-2.2.8
READ 4542.71, 10171.26, (X2 old)
RENAME 1347.75, 4483.27, (X4 old)
EXISTS 47.23, …
Run Code Online (Sandbox Code Playgroud) 我正在使用 Apache Hadoop FTPFileSystem版本 3.2.0 来列出和读取来自 FTP 服务器的文件。
这是我的测试代码:
public static void main(String[] args) throws IOException {
String host = "some-host";
int port = 21;
Configuration conf = new Configuration(false);
conf.set("fs.ftp.host", host);
conf.setInt("fs.ftp.host.port", port);
conf.set("fs.ftp.user." + host, "username");
conf.set("fs.ftp.password." + host, "password");
conf.set("fs.ftp.data.connection.mode", "PASSIVE_LOCAL_DATA_CONNECTION_MODE");
conf.set("fs.ftp.impl", "org.apache.hadoop.fs.ftp.FTPFileSystem");
String fsURL = String.format("ftp://%s:%s", host, String.valueOf(port));
conf.set("fs.default.name", fsURL);
FileSystem fs = FileSystem.newInstance(conf);
Path somePath = new Path("actual/path");
fs.getFileStatus(somePath).isDirectory(); // returns true
fs.listStatus(somePath); // keeps spinning then throws SocketTimeOutException
}
Run Code Online (Sandbox Code Playgroud)
org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPFileEntryParser, String)
经过一些调试后,该方法执行时发生死锁或延迟:engine.readServerList(socket.getInputStream(), …
我有一个数组数组:
x = [
["ready", 5], ["shipped", 1], ["pending", 1], ["refunded", 1],
["delivered", 23], ["scheduled", 1], ["canceled", 51]
]
Run Code Online (Sandbox Code Playgroud)
我的排序数组是
order_array = [
"ready", "in_progress", "recieved", "shipped", "scheduled", "pick_up",
"delivered", "canceled", "failed", "refunded", "refund_failed"
]
Run Code Online (Sandbox Code Playgroud)
我需要x
根据每个子数组中第一个元素的值进行排序。所需的排序数组是:
[
["ready", 5], ["shipped", 1], ["scheduled", 1], ["delivered", 23],
["canceled", 51], ["refunded", 1]
]
Run Code Online (Sandbox Code Playgroud)
使用sort_by
不会导致所需的排序,它会导致相同的数组。
result = x.sort_by {|u| order_array.index(u)}
# => [
# ["ready", 5], ["shipped", 1], ["pending", 1], ["refunded", 1],
# ["delivered", 23], ["scheduled", 1], ["canceled", 51]
# …
Run Code Online (Sandbox Code Playgroud) 我有一个带整数值的哈希:
h = {
a: 1,
b: 1,
c: 1,
d: 2,
e: 2,
}
Run Code Online (Sandbox Code Playgroud)
我需要添加100
第一个值,对于第二个值和on,我需要将前面的值添加到原始值中以获得:
{
a: 101,
b: 102,
c: 103,
d: 105,
e: 107,
}
Run Code Online (Sandbox Code Playgroud)
有没有一个很好的方法来实现这一目标?