小编Roe*_*rel的帖子

使用ElasticSearch的script_upsert创建文档

根据官方文档Update API-Upserts,可以使用scripted_upsert该脚本处理脚本中的更新(对于现有文档)或插入(对于新文档)表格。问题是它们从不显示脚本应如何执行此操作。在爪哇-更新API没有对ScriptUpsert用途的任何信息。

这是我正在使用的代码:

//My function to build and use the upsert
public void scriptedUpsert(String key, String parent, String scriptSource, Map<String, ? extends Object> parameters) {
    Script script = new Script(scriptSource, ScriptType.INLINE, null, parameters);
    UpdateRequest request = new UpdateRequest(index, type, key);
    request.scriptedUpsert(true);
    request.script(script);
    if (parent != null) {
        request.parent(parent);
    }
    this.bulkProcessor.add(request);
}

//A test call to validate the function
String scriptSource = "if (!ctx._source.hasProperty(\"numbers\")) {ctx._source.numbers=[]}";
Map<String, List<Integer>> parameters = new HashMap<>();
List<Integer> numbers = new …
Run Code Online (Sandbox Code Playgroud)

java upsert elasticsearch elasticsearch-java-api

5
推荐指数
1
解决办法
1403
查看次数

spark中的cache()会改变RDD的状态还是创建一个新的状态?

这个问题是对前一个问题的跟进.如果我在Spark中缓存两次相同的RDD会发生什么.

在调用cache()RDD时,RDD的状态是否发生了变化(返回的RDD只是this为了易于使用),还是创建了一个新的RDD,包装了现有的RDD?

以下代码中会发生什么:

// Init
JavaRDD<String> a = ... // some initialise and calculation functions.
JavaRDD<String> b = a.cache();
JavaRDD<String> c = b.cache();

// Case 1, will 'a' be calculated twice in this case 
// because it's before the cache layer:
a.saveAsTextFile(somePath);
a.saveAsTextFile(somePath);

// Case 2, will the data of the calculation of 'a' 
// be cached in the memory twice in this case
// (once as 'b' and once as 'c'):
c.saveAsTextFile(somePath);
Run Code Online (Sandbox Code Playgroud)

java caching apache-spark rdd

4
推荐指数
1
解决办法
1008
查看次数

压缩数据并将其上传到 S3 而不将全部内容保留在内存中

我想压缩使用 GZIP 流动态创建的数据并将其上传到 S3,同时我希望每个压缩文件的数据为 ±1Giga。

由于文件很大,而且我要并行处理多个文件,我无法将整个数据保存在内存中,我希望尽快将数据流式传输到 S3。

此外,我无法知道压缩数据的确切大小。阅读这个问题“我可以在没有内容长度标头的情况下将文件上传到 S3 吗? ”但我不知道如何将它与 GZIPing 结合起来。

我想我可以做到这一点,如果我能够创建GZIPOutputStream,将数据逐部分发送给它,同时读取压缩数据的块(希望是 5Mb)并使用Amazon S3将它们上传到S3:分段上传

我正在尝试做的是可能的吗?或者我唯一的选择是将数据压缩到本地存储(我的硬盘)然后上传压缩文件?

java file-upload amazon-s3 aws-sdk

4
推荐指数
1
解决办法
4411
查看次数

如何在后台运行进程并在同一命令行中更改目录

我想创建一个命令来更改目录,在后台运行一个进程,然后返回到原始目录。从特定目录启动进程非常重要(它使用运行目录作为相对路径)。

我尝试运行它,但出现以下错误:

cd ~/work; myapp &> /dev/null &; cd -
-bash: syntax error near unexpected token `;'
Run Code Online (Sandbox Code Playgroud)

我可以运行以下任一命令。

# Without the "&" that cause the process to run in the background
cd ~/work; myapp &> /dev/null; cd -
# Without the " cd -" which returns my to the original directory
cd ~/work; myapp &> /dev/null &
Run Code Online (Sandbox Code Playgroud)

这样做的目的是能够将此命令添加到我的别名中。

bash

4
推荐指数
1
解决办法
1445
查看次数

c 在 C++ 中进行强制转换,编译时还是运行时?

有谁知道,例如,我是否正在用 c++ 编写以下代码:

int a;
void *ptr = &a;
ptr = (char *)ptr + 1; //<-- this is the interesting line;
Run Code Online (Sandbox Code Playgroud)

only是否(char *)告诉编译器如何寻址该变量?
或者它实际上在运行时添加了更多计算?

谢谢。

c c++ casting

3
推荐指数
1
解决办法
3111
查看次数

Try/Catch - "代码风格"问题

一般来说,我想创建一个代码,使一个调用成为一个类的执行函数,可能会抛出异常.我的问题是我应该设置类,我应该在try/catch或out方面从中提取值吗?

选项A:

neededValue V;

try
{
    MyClass C = new MyClass();
    C.SomeParam = XXX;
    C.Execute();
    V = C.SomeParam2;
}
catch
{
    //Clean up...
    //Log...
    //Throw new exception
}
Run Code Online (Sandbox Code Playgroud)

选项B:

neededValue V;
MyClass C = new MyClass();
C.SomeParam = XXX;

try
{
    C.Execute();
}
catch
{
    //Clean up...
    //Log...
    //Throw new exception
}

V = C.SomeParam2;
Run Code Online (Sandbox Code Playgroud)

我知道两者都会奏效,但哪个更好更容易阅读?

c# coding-style try-catch

2
推荐指数
1
解决办法
375
查看次数

S3Client copyObject交叉区域

我正在尝试在不同区域的2个S3存储桶之间复制文件:

US_EAST_1 ---> EU_CENTRAL_1

使用以下命令:

s3client.copyObject(sourceBucket, sourceFile, DestBucket, DestFile);
Run Code Online (Sandbox Code Playgroud)

我启动了s3client而没有提供允许它与两个区域一起工作的区域,但是我收到以下错误:

引起:com.amazonaws.services.s3.model.AmazonS3Exception:您尝试访问的存储区必须使用指定的端点进行寻址.请将以后的所有请求发送到此端点.(服务:亚马逊S3;状态码:301;错误代码:PermanentRedirect;请求ID:C2E6D084FF257437),S3扩展请求ID:rXDTuqPSCCKWoF8luScpL +/+ po93oEQC2VSNUBQtSLBh5q8yEAO0WwK8FnBMPGEZQjS = zwkkHWBg在com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1305) at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:852)at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:630)at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:405) )在com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:367)在com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:318)在com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.的java:3787)在com.amazonaws.services.s3.AmazonS3Client.copyObject(AmazonS3Client.java:1530)在com.amazonaws.services.s3.AmazonS3Client.copyObject(AmazonS3Client.java:1487)

我正在使用'aws-java-sdk'版本:'1.11.7'

如何克服这个错误?

java amazon-s3 amazon-web-services aws-sdk

2
推荐指数
1
解决办法
1064
查看次数

"num_online_cpus()"可以在同一次运行中返回不同的值吗?

这个名字暗示着它.如果有在线cpu,是否有离线cpu?离线cpu可以上线,反之亦然?

提前致谢.RG

c linux linux-kernel

1
推荐指数
1
解决办法
1188
查看次数

C#中的符号"=>"是什么意思?

我有以下代码,我无法完全理解那里发生的事情:

Authorize auth = new Authorize(
    this.google,
    (DesktopConsumer consumer, out string requestToken) =>
    GoogleConsumer.RequestAuthorization(
        consumer,
        GoogleConsumer.Applications.Contacts | GoogleConsumer.Applications.Blogger,
        out requestToken));
Run Code Online (Sandbox Code Playgroud)

这就是我所知道的:
"授权" - 只有一个构造函数接受2个参数:(DesktopConsumer,FetchUri).
"this.google" - 是"desktopConsumer"对象.
"GoogleConsumer.RequestAuthorization"返回"Uri"对象.

我无法理解这条线的含义是什么:
(DesktopConsumer consumer, out string requestToken) =>
在中间.

c#

1
推荐指数
1
解决办法
406
查看次数

枚举自定义Web测试验证规则

我正在使用Microsoft VS2010构建Web测试.
我在MSDN上使用了解释:如何:为Web性能测试创建自定义验证规则.
在示例中,当我将此验证规则添加到我的测试时,使用stringint作为私有成员使用公共"获取"和"设置"这些参数在UI中有效进行编辑.

我希望有一个Enum with 3选项,当我将验证规则添加到UI时,我可以选择.

有没有办法添加一个在UI中也有效的Enum变量?
是否有任何其他可以使用的类型在UI中有效?

webtest visual-studio-2010 validationrules

1
推荐指数
1
解决办法
426
查看次数

try-catch-finally执行顺序

我在理解try-catch-finally的执行顺序时遇到了问题.我见过的所有例子(如:http://stackoverflow.com/questions/4191027/order-of-execution-of-try-catch-and-finally-block)都有一个非常简单的"捕获"部分,打印到控制台.但如果我在捕获中使用"throw"语句会发生什么?

我能想到的最简单的代码可以捕获问题:

public class TestClass
{
    void Foo(int num)
    {
        int answer = 100;
        try
        {
            answer = 100 / num;
        }
        catch (Exception e)
        {
            //Probably num is 0
            answer = 200;
            throw;
        }
        finally
        {
            Console.WriteLine("The answer is: " + answer);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果num == 2,那么输出将是:

答案是:50

但是会为num == 0打印什么?

答案是:100
答案是:200根本
没有印刷......

还是仅仅是一种"未定义的行为"?

c# try-catch-finally

-2
推荐指数
1
解决办法
1628
查看次数