小编dmr*_*het的帖子

Spark cache vs broadcast

看起来广播方法在我的集群中生成RDD的分布式副本.另一方面,cache()方法的执行只是将数据加载到内存中.

但我不明白缓存的RDD是如何在集群中分布的.

你能告诉我在哪些情况下我应该使用rdd.cache()rdd.broadcast()方法吗?

caching apache-spark

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

如何从子进程调用父私有方法?

public class A{
    private int getC(){
        return 0;
    }
}

public class B extends A{
    public static void main(String args[]){
        B = new B();
        //here I need to invoke getC()
    }
}
Run Code Online (Sandbox Code Playgroud)

你能否告诉我是否有可能通过java中的反射做一些事情?

java reflection

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

卡桑德拉乐观锁定

我有一个cassandra table1:

CREATE TABLE Policy.table1 (
name VARCHAR ,
date TIMESTAMP ,
version_num INT,
PRIMARY KEY   (
         name
         )) WITH caching = 'all'
     --   and memtable_flush_period_in_ms = 7200 ;
     ;
Run Code Online (Sandbox Code Playgroud)

我需要在tis表上实现乐观锁定.当我们从table1读取一行时,我们记得它的version_num.当我们想要更新这一行时,我们比较当前的version_num值和我们记住的值.我们还需要在每次更新时增加version_num.

问题:

  1. 我们不能把version_num放到where子句中,这会产生错误:错误的请求:在where子句中找到的非PRIMARY KEY version_num:

     update table where name = 'abc' and version = 3
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我们不能将version_num设置为主键的一部分,因为我们需要更新其值

  3. 如果我们索引version_num它将对update语句没有帮助,将抛出相同的异常
  4. 我看到的唯一方法是通过Java获取当前的version_num值,并且如果预期和实际的version_num值相同 - 则执行更新.问题是在这种情况下我们没有检查version_num值的原子操作并更新行.

你看到这个问题的解决方案吗?

cassandra nosql

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

Bigquery在Day分区表中加载数据

我想创建日分区数据并从Cloude Storage加载数据.我已经完成了

  1. bq mk --time_partitioning_type = DAY myDataSet.dailytable

  2. bq load --source_format = AVRO myProjectId:myDataSet.dailytable $ 20150510 gs:// myBucket/path/2016-05-10/*

实际结果:

我有2个表:dailyTable和dailyTable $ 0150510

预期结果:

我每天有2张桌子和每日桌子2美元0150510

这是预期的行为吗?

google-bigquery

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