小编Ash*_*iya的帖子

java:写大文件?

问候,我从数据库中获取大量记录并写入文件.我想知道编写大文件的最佳方法是什么.(1Gb - 10Gb).

目前我正在使用BufferedWriter

BufferedWriter mbrWriter=new BufferedWriter(new FileWriter(memberCSV));
while(done){
 //do writings
}
mbrWriter.close();
Run Code Online (Sandbox Code Playgroud)

java bufferedwriter java-io

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

Delta Lake:更新插入内部如何工作?

在我们的数据管道中,我们从数据源中提取 CDC 事件,并将这些更改以 AVRO 格式写入“增量数据”文件夹中。

然后,我们定期运行 Spark 作业,将这些“增量数据”与我们当前版本的“快照表”(ORC 格式)合并,以获得最新版本的上游快照。

在此合并逻辑期间:

1)我们将“增量数据”加载为DataFrame df1

2)将当前的“快照表”加载为DataFrame df2

3) 合并 df1 和 df2 去重复 ID 并获取最新版本的行(使用 update_timestamp 列)

此逻辑将“增量数据”和当前“快照表”的全部数据加载到 Spark 内存中,该内存可能非常巨大,具体取决于数据库。

我注意到在 Delta Lake 中,使用以下代码完成类似的操作:

import io.delta.tables._
import org.apache.spark.sql.functions._

val updatesDF = ...  // define the updates DataFrame[date, eventId, data]

DeltaTable.forPath(spark, "/data/events/")
  .as("events")
  .merge(
    updatesDF.as("updates"),
    "events.eventId = updates.eventId")
  .whenMatched
  .updateExpr(
    Map("data" -> "updates.data"))
  .whenNotMatched
  .insertExpr(
    Map(
      "date" -> "updates.date",
      "eventId" -> "updates.eventId",
      "data" -> "updates.data"))
  .execute()
Run Code Online (Sandbox Code Playgroud)

在这里,“updatesDF”可以被认为是来自 CDC 源的“增量数据”。

我的问题

1)合并/更新插入内部如何工作?它是否将整个“updatedDF”和“/data/events/”加载到 Spark 内存中? …

apache-spark databricks delta-lake

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

用于单独HTML页面的GWT多模块?

我是GWT的新手,并且正在使用GWT为用户管理应用程序开发UI.我打算使用使用Spring/Hibernate创建的现有模块.我想出了如何将GWT与Spring集成,但我不确定如何设计布局.

我想要两页:

  1. 用户注册页面(想在HTML中嵌入GWT小部件)
  2. 管理页面(如上所述单独的HTML,嵌入了GWT小部件)
  3. 我计划使用Spring Security,我应该使用简单的JSP登录页面还是可以使用RIA GWT登录小部件?

我可以用什么来满足上述要求?多个GWT模块?

java gwt spring-mvc

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

使用Hibernate方言设置表格字符集/校对?

我使用Hibernate MySQLInnoDB Dialect来生成DDL.

hibernate.cfg.xml:

<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
Run Code Online (Sandbox Code Playgroud)

如何为生成的表配置字符集/排序规则为'utf8_general_ci'?

java mysql hibernate

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

表头的CSS,甚至奇数行?

我的表结构如下:

<table>
 <thead>
   <tr class="navigation">
   </tr>
 </thead>
 <thead>
   <tr class="headers">
   </tr>
 </thead>
 <tbody>
  <tr class="even">
    <td><a href="#"/></td>
  </tr>
  <tr class="odd">
  </tr>
  </tr>
 </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我已经定义了以下CSS,如何在我的CSS中应用"导航","标题","偶数","奇怪"类?如何定义它们与'table'类相关,如'table.even','table.odd'?谢谢

table{
    font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
    font-size: 10px;
    #margin: 45px;
    width:100%;
    text-align: left;
    border-collapse: collapse;  
}
Run Code Online (Sandbox Code Playgroud)

html css

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

C++指针之间的引用

说我有一堂课Foo

class Foo {
}
Run Code Online (Sandbox Code Playgroud)

我做以下任务:

Foo *ptrFoo=new Foo();

Foo &ref=*(ptrFoo);  //question 1
Foo afoo=*(ptrFoo); //quesion 2
Run Code Online (Sandbox Code Playgroud)

我的问题:

1)当分配给"&ref"时内存中发生什么?它只是将"ptrFoo"的内存地址分配给"ref"吗?

2)当分配给"afoo"时,会发生什么?它是否调用copy-constructor?这意味着内存是为两个Foo对象分配的?即"afoo"和先前为"ptrFoo"分配的内存?

3)假设我有一个名为"void methodBar(const Foo&instance)"的方法,如果我将"ptrFoo"传递给:

methodBar((*preFoo));

什么是"const"的重要性在这里?

c++ pointers memory-management

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

Tomcat:当 HTTP 连接关闭时,终止在请求线程中产生的线程

在 Tomcat 6/7 中:

1)说在请求线程中我们执行了一些任务;调用其他网络服务,DB .. 等。当客户端关闭 HTTP 连接时,请求线程是否被终止/终止以停止任何正在运行的任务?如果没有,如何终止?

2)如果,在请求线程中我们执行一些并行任务,产生一些新线程(使用具有固定池大小的 ExecutorService)。在 HTTP 连接关闭的情况下,如何终止/杀死请求线程内产生的这些线程?

java multithreading tomcat tomcat6 threadpool

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

Qt智能指针相当于Boost :: shared_ptr?

Boost::shared_ptr在之前的项目中使用过,现在我想在Qt中找到一个智能指针,它做同样/类似的事情.由于Qt中有许多智能指针类,我想知道使用哪一个.是QSharedPointer吗?

c++ boost smart-pointers qt4 qsharedpointer

4
推荐指数
2
解决办法
2303
查看次数

Spring REST Security:仅在特定端点上启用基本身份验证

我已经为我的REST API配置了Spring Security(使用HeaderHttpSessionStrategy).

我的'WebSecurityConfigurerAdapter'实现如下所示.

@Override
    protected void configure(HttpSecurity http) throws Exception {

        http

            .csrf().disable()

            .authorizeRequests()
                .antMatchers("/user/**").authenticated()
                .antMatchers("/**").permitAll()

                .and()
            .requestCache()
                .requestCache(new NullRequestCache())
                .and()

            .httpBasic()
            ;

    }
Run Code Online (Sandbox Code Playgroud)

现在,我如何配置'HttpSecurity'对象,以便只有特定端点才能进行基本身份验证.

例如:

/ user/login:只能在此端点进行基本身份验证.在进行成功身份验证后,将返回x-auth-token标头.

/ user/create:客户端不应该能够在此端点上进行身份验证.只能返回401.Can只能使用/ user/login端口创建的"x-auth-token"访问.

java spring spring-mvc spring-security spring-restcontroller

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

DynamoDB:在全球二级索引上使用"withExclusiveStartKey"进行分页

我有名为"product"的DynamoDB表,其中"userId"的全局二级索引.Primary Key在"id"上.我正在尝试使用"userID"GSI上的"withExclusiveStartKey"实现分页查询.但是,当我传递一个有效的lastId时,我得到以下异常:

独占开始密钥必须与表的密钥模式具有相同的大小(服务:AmazonDynamoDBv2;状态代码:400;错误代码:ValidationException;请求ID:822db97e-04a3-4c36-8c72-6008e2693679)

我在这做错了什么?

public QueryResultPage<Product>  findPaged(String userId,int limit,String lastId) {
        DynamoDBMapper mapper = new DynamoDBMapper(dynamoDb);       
        Map<String, AttributeValue> vals = new HashMap<>();
        vals.put(":valUserId", new AttributeValue().withS(userId));
                DynamoDBQueryExpression<Product> queryExp = new         DynamoDBQueryExpression<Product>()
                .withKeyConditionExpression("userId = :valUserId")
                .withIndexName(ModelConsts.TBL_PRODUCT_GSI_USERID)
                .withExpressionAttributeValues(vals)
                .withScanIndexForward(false)
                .withConsistentRead(false)
                .withLimit(limit);  
           if (lastId != null) {//paging
            Map<String, AttributeValue> exclusiveStartKey = new HashMap<String, AttributeValue>();
                    exclusiveStartKey.put("id", new AttributeValue().withS(lastId));
               queryExp = queryExp.withExclusiveStartKey(exclusiveStartKey);
        }   
        QueryResultPage<Product> result = mapper.queryPage(Product.class, queryExp);
        return result;      
    }
Run Code Online (Sandbox Code Playgroud)

pagination amazon amazon-dynamodb

4
推荐指数
3
解决办法
5015
查看次数