为什么Java HashMap的最大容量为1 << 30而不是1 << 31,即使int的最大值是2 31 -1?最大容量初始化为static final int MAXIMUM_CAPACITY = 1 << 30;
我试图从聚合原理的角度理解火花流。Spark DF 基于小批量,并且计算是在特定时间窗口内的小批量上完成的。
假设我们的数据如下 -
Window_period_1[Data1, Data2, Data3]
Window_period_2[Data4, Data5, Data6]
..
Run Code Online (Sandbox Code Playgroud)
然后首先计算 Window_period_1,然后计算 Window_period_2。如果我需要使用新的传入数据以及历史数据,比如说 Window_period_new 与 Window_period_1 和 Window_period_2 中的数据之间的 groupby 函数,我该怎么做?
查看同一事物的另一种方式是,如果我有一个已经创建了一些数据框的要求 -
df1、df2、df3 和我需要运行一个聚合,其中涉及来自 df1、df2、df3 和 Window_period_1、Window_period_2 的数据以及所有新传入的流数据
我该怎么做呢?
我将通过HashMapJava中的类的源代码,并发现变量被初始化为
static final int MAXIMUM_CAPACITY = 1 << 30;
Run Code Online (Sandbox Code Playgroud)
为什么不只是
static final int MAXIMUM_CAPACITY = 1073741824;
Run Code Online (Sandbox Code Playgroud)
这意味着同样的事情.是否有任何性能原因或仅仅是一个奇特的东西?
我们正在讨论在我们拥有的大数据集群中使用kerberos.我们的管理员希望使用ldap进行身份验证和授权.我抬头看着互联网并得到了反复的反应但是对于使用kerberos的原因没有明确的理解.
我知道你可以使用kerberos和ldap,但我没有清楚地了解使用kerbors + ldap vs ldap的好处.有人可以解释一下吗?
为什么说在java中使用枚举更好.如果你有不同数据类型的常量,我认为最好使用带常量的类而不是枚举?
喜欢
Class A {
public static int A = 1;
public static int B = 2;
public static String c = "RADIUS";
public static String d = "LENGTH";
}
Run Code Online (Sandbox Code Playgroud)
代替
enum ofInts {A(1), B(2)}
enum ofStrings{c("RADUIS"), d("LENGTH")}
Run Code Online (Sandbox Code Playgroud) 我正在使用calliope即spark插件来连接cassandra.我创建了两个看起来像的RDD
class A
val persistLevel = org.apache.spark.storage.StorageLevel.MEMORY_AND_DISK
val cas1 = CasBuilder.cql3.withColumnFamily("cassandra_keyspace", "cassandra_coulmn_family 1")
val sc1 = new SparkContext("local", "name it any thing ")
var rdd1 = sc.cql3Cassandra[SCALACLASS_1](cas1)
var rddResult1 = rdd1.persist(persistLevel)
class B
val cas2 = CasBuilder.cql3.withColumnFamily("cassandra_keyspace", "cassandra_coulmn_family 2")
var rdd2 = sc1.cql3Cassandra[SCALACLASS_2](cas2)
var rddResult2 = rdd2.persist(persistLevel)
以某种方式跟随使用其他2创建新RDD的代码库不起作用.是否有可能我们不能一起迭代2个RDD?
这是不起作用的代码片段 -
case class Report(id: Long, anotherId: Long)
var reportRDD = rddResult2.flatMap(f => {
val buf = List[Report]()
**rddResult1.collect().toList**.foldLeft(buf)((k, v) => {
val buf1 = new ListBuffer[Report]
buf ++ v.INSTANCE_VAR_FROM_SCALACLASS_1.foldLeft(buf1)((ik, iv) => …Run Code Online (Sandbox Code Playgroud) 我试图使用隐式转换scala中的选项值到String但不知何故它的工作.这是我的语法 -
object ToStringParser{
implicit def optionAnyToString[T](input: Option[T]):String = {
input match {
case Some(i) => i.toString
case None => "NULL"
}
}
}
Run Code Online (Sandbox Code Playgroud)
而我正在使用它 -
import domain.processors.ToStingParser._
println(submitDate)
Run Code Online (Sandbox Code Playgroud)
但这总是印刷 -
Some(2016-08-02T17:55:03.000-04:00)
Run Code Online (Sandbox Code Playgroud)
我们如何隐含选项