我一直在看很多关于Java中排列的不同帖子,但是没有一个符合我的账单,所以我决定发帖.
所以我有2 List<Integer>,我需要生成所有排列对,没有重复,其中该对的一个元素在第一个列表中,第二个元素在第二个列表中.
例如,如果我有:
List<Integer> l1 = Arrays.asList(new Integer[] {1, 2, 3});
List<Integer> l1 = Arrays.asList(new Integer[] {2, 3, 4});
Run Code Online (Sandbox Code Playgroud)
然后我想输出:
(1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4)
Run Code Online (Sandbox Code Playgroud)
注意,(3,2)不在这里,因为我已经有(2,3)
我找不到任何库甚至远程关闭的东西,我发现guava有类似的东西,Permutations但似乎最近已经停止或其他东西.
另外,我想不必存储在内存中的列表,因为它可以是相当大的,我只需要遍历在一个对的时间,所以我试图找到方法来生成它们的飞行.我正在考虑实现一个,Iterable<Pair>但我似乎无法编写任何看起来有效的东西.
如果你知道那些已经做过这种非常有用的东西的图书馆!
我在堆上分配了一些很少修改但需要快速读取访问权限的数据结构.一个例子是在堆上分配的结构,许多线程以只读方式非常频繁地访问该结构.需要定期重新编写此结构并避免锁定争用我想知道是否可以安全地使用auto_ptr基本上允许获取引用的线程继续处理直到它们完成但允许编写器复制结构,重写它并快速交换指针与结构的新auto_ptr实例.
我从CopyOnWriteArrayListJava中得到了这个想法,并希望在C++中执行类似的性能.
为什么没有线程等待notify()?线程启动然后进入等待池,但是在那之后它继续执行.
public class JavaApplication2 {
public static void main(String [] args) {
ThreadB b = new ThreadB();
synchronized(b) {
b.start();
try {
System.out.println("1");
b.wait();
} catch (InterruptedException e) {}
System.out.println("Total is: " + b.total);
}
}
}
class ThreadB extends Thread {
int total;
@Override
public void run() {
synchronized(this) {
total += 1;
//notify();
}
}
}
Run Code Online (Sandbox Code Playgroud) 我在Apache Hive中遇到了一段代码,如regexp_extract(输入,'[0-9]*',0),有人可以向我解释这段代码的作用吗?谢谢
如何在Hadoop中找到每个映射器和缩减器花费的时间以及在代码(不在Web界面中)中进行洗牌(排序)的时间?所有映射器(或缩减器)的总时间如何?
每次运行我的Hadoop程序时,我都需要更改映射器和缩减器的数量.有没有办法从命令行(当我运行程序时)将映射器和缩减器的数量传递给我的程序然后用于args检索它?
我的同事在蜂巢中创建了一个表,并添加了一个棘手的SerDe Regex.我想看看正则表达式是什么,但"SHOW CREATE TABLE"命令没有它.
有没有其他方法可以查看创建表的SERDEPROPERTIES?
例:
hive> CREATE TABLE foo (
bar STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES ( "input.regex" = "(.*)", "output.format.string" = "%1$s" );
OK
Time taken: 0.078 seconds
hive> SHOW CREATE TABLE foo;
OK
CREATE TABLE foo(
bar string COMMENT 'from deserializer')
ROW FORMAT DELIMITED
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'maprfs:/user/hive/warehouse/foo'
TBLPROPERTIES (
'transient_lastDdlTime'='1383248078')
Time taken: 0.091 seconds, Fetched: 11 row(s)
Run Code Online (Sandbox Code Playgroud)
我正在使用hive 0.11.谢谢!
我最近一直在玩Panda的DataFrames,并努力分析一些多维数据.
假设我有一些数据如下:
order | sample | feature1 | feature2
-------------------------------------
1234 | A | 0.20 | 0.45
1234 | B | 0.71 | 0.08
1234 | C | 0.21 | 0.02
1234 | D | 0.87 | 0.88
5678 | A | 0.76 | 0.42
5678 | B | 0.01 | 0.03
5678 | C | 0.29 | 0.91
5678 | D | 0.70 | 0.78
Run Code Online (Sandbox Code Playgroud)
我希望输出按顺序分组的所有内容以及每个功能按样本汇总的位置:
order | feature1 | feature2
| A | B | C | D …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试手动创建一个简单的守护进程,我不想使用现有的外部库来避免开销.
当我的进程运行,它不具有PID文件已经创建(这意味着它的运行),就像在描述我目前正在检查这个职位.
我还有一个守护进程模块,用于将PID与当前进程分离并重定向stdout和stderr(因此即使我结束会话,我的守护进程也会继续运行):
import os
import sys
def daemonize(stdin="/dev/null", stdout="/dev/null", stderr="/dev/null"):
try:
pid = os.fork()
if pid > 0:
sys.exit(0)
except OSError, e:
sys.stderr.write ("fork #1 failed: (%d) %s\n" % (e.errno, e.strerror) )
sys.exit(1)
os.chdir("/")
os.umask(0)
os.setsid()
try:
pid = os.fork()
if pid > 0:
sys.exit(0)
except OSError, e:
sys.stderr.write ("fork #2 failed: (%d) %s\n" % (e.errno, e.strerror) )
sys.exit(1)
stdin_par = os.path.dirname(stdin)
stdout_par = os.path.dirname(stdout)
stderr_par = os.path.dirname(stderr)
if not stdin_par:
os.path.makedirs(stdin_par)
if not stdout_par: …Run Code Online (Sandbox Code Playgroud) 我不明白这些事情之间的区别:
ArrayList<Integer> list = new ArrayList<Integer>(); 和 Collection<Integer> list1 = new ArrayList<Integer>();
类ArrayList扩展了实现接口的Collection类,因此Class ArrayList实现了Collection接口.也许list1允许我们从Collection界面中使用静态方法?