小编Com*_*cau的帖子

如何将多个操作绑定到快捷方式

每次我完成编辑Java类时,我想:组织导入,重新格式化代码和重新排列代码.我必须打3个键盘快捷键.

有没有办法将一系列操作分配给单个快捷方式?

我正在使用IntelliJ 14.1.5.

intellij-idea intellij-14

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

AWS Athena JDBC PreparedStatement

我无法让 AWS Athena JDBC 驱动程序使用 PreparedStatement 和绑定变量。如果我将列的所需值直接放在 SQL 字符串中,它就可以工作。但是如果我使用占位符 '?' 我用 PreparedStatement 的 setter 绑定变量,它不起作用。当然,我们知道我们必须使用第二种方式(用于缓存,避免 SQL 注入等)。

我使用 JDBC 驱动程序 AthenaJDBC42_2.0.2.jar。尝试使用占位符 '?' 时出现以下错误 在 SQL 字符串中。当我从 JDBC 连接获取 PreparedStatement 时抛出错误。它抱怨找不到参数。但是我在代码中设置了它们。如何在获取 PreparedStatement 之前设置参数 :-) ?

java.sql.SQLException: [Simba][AthenaJDBC](100071) An error has been thrown from the AWS Athena client. SYNTAX_ERROR: line 1:1: Incorrect number of parameters: expected 1 but found 0

at com.simba.athena.athena.api.AJClient.executeQuery(Unknown Source)
at com.simba.athena.athena.dataengine.AJQueryExecutor.<init>(Unknown Source)
at com.simba.athena.athena.dataengine.AJDataEngine.prepare(Unknown Source)
at com.simba.athena.jdbc.common.SPreparedStatement.<init>(Unknown Source)
at com.simba.athena.jdbc.jdbc41.S41PreparedStatement.<init>(Unknown Source)
at com.simba.athena.jdbc.jdbc42.S42PreparedStatement.<init>(Unknown Source)
at com.simba.athena.jdbc.jdbc42.JDBC42ObjectFactory.createPreparedStatement(Unknown Source)
at …
Run Code Online (Sandbox Code Playgroud)

jdbc amazon-web-services amazon-athena

8
推荐指数
2
解决办法
4823
查看次数

Eclipse生成了Javadoc $ {date}格式

在编写Javadoc时,是否可以更改Eclipse设置$ {date}值的方式?默认的不适合我.

在此输入图像描述

在此输入图像描述

eclipse

7
推荐指数
2
解决办法
1634
查看次数

适用于 Java 的 AWS 开发工具包版本 2 - 删除 S3“文件夹”或删除多个 S3 对象

我正在搜索如何使用 AWS SDK for Java 版本 2 删除 S3文件夹。我只找到了 AWS SDK 版本 1 示例。

我知道S3是一个对象存储,并且不存在文件夹的概念。我在这里的意思是:

  • 列出具有给定前缀的给定存储桶的 S3 对象
  • 使用 a 删除返回的对象,DeleteObjectsRequest以便能够在对 AWS API 的单个 HTTP 调用中删除最多 1000 个对象

当我搜索示例时,我经常返回此页面: https: //docs.aws.amazon.com/AmazonS3/latest/dev/DeletingMultipleObjectsUsingJava.html,这似乎是 AWS SDK for Java 的版本 1即被使用。至少,就我而言,我导入了AWS SDK 2,并且无法直接实例化DeleteObjectsRequest,如此例中所示。我被迫使用构建器,然后我找不到相同的方法来指定要删除的键列表。

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

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

HBase批量删除为“完全批量加载”

我想删除HBase表中的3亿行。我可以使用HBase API并发送一批Delete对象。但是恐怕要花很多时间。

以前的代码就是这种情况,我想插入数百万行。我没有使用HBase API并发送大量的Puts,而是使用Map Reduce作业,该作业发出RowKey / Put作为值,并使用HFileOutputFormat2.configureIncrementalLoad(job, table, regionLocator)来设置我的Reducer,以便它直接写输出准备快速加载LoadIncrementalHFiles(完整批量加载) 。这要快得多(5分钟而不是3小时)。

因此,我想对批量删除执行相同的操作。

但是,似乎无法将这种技术与Delete结合使用,因为它HFileOutputFormat2试图为KeyValuePut(PutSortReducer)配置Reducer,但是Delete不存在。

我的第一个问题是,为什么没有“ DeleteSortReducer”来启用完整的批量删除技术?只是缺少的东西,还没有做到吗?还是有更深层的理由证明这一点?

第二个问题是相关的:如果我复制/粘贴PutSortReducer的代码,将其修改为Delete并将其作为我的工作的Reducer传递,它将起作用吗?HBase完整的批量加载是否会产生充满墓碑的HFile?

范例:

public class DeleteSortReducer extends
        Reducer<ImmutableBytesWritable, Delete, ImmutableBytesWritable, KeyValue> {

    @Override
    protected void reduce(
            ImmutableBytesWritable row,
            java.lang.Iterable<Delete> deletes,
            Reducer<ImmutableBytesWritable, Delete,
                    ImmutableBytesWritable, KeyValue>.Context context)
            throws java.io.IOException, InterruptedException
    {
        // although reduce() is called per-row, handle pathological case
        long threshold = context.getConfiguration().getLong(
                "putsortreducer.row.threshold", 1L * (1<<30));
        Iterator<Delete> iter = deletes.iterator();
        while (iter.hasNext()) {
            TreeSet<KeyValue> map = new …
Run Code Online (Sandbox Code Playgroud)

hbase

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