我最近学得很快,但我有一个无法找到答案的基本问题
我想得到类似的东西
var a:Int = 3
var b:Int = 3
println( pow(a,b) ) // 27
Run Code Online (Sandbox Code Playgroud)
但pow函数只能使用double数,它不能用整数运算,我甚至无法通过Double(a)或a.double()等函数将int转换为double.
为什么它不提供整数的幂?它肯定会返回一个没有歧义的整数!为什么我不能将整数转换为double?它只是改变3到3.0(或3.00000 ...无论如何)
如果我有两个整数并且我想进行电源操作,我该怎样才能顺利完成?
谢谢!
我的表“my_logs”有大约 20,000,000 条记录,我想找出几天内每个日期有多少日志。
我想要一个结果
+------------+---------+
| date | count |
+------------+---------+
| 2016-07-01 | 1623 |
| 2016-07-02 | 1280 |
| 2016-07-03 | 2032 |
+------------+---------+
下面的这个查询只需要几毫秒就可以完成,这很好
SELECT DATE_FORMAT(created_at, '%Y-%m-%d') as date,
COUNT(*) as count
FROM my_logs
WHERE created_at BETWEEN '2016-07-01' AND '2016-07-04'
GROUP BY DATE_FORMAT(created_at, '%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)
查询说明:
+------------+---------+-------+-----------------------------+
|select_type | table | type | possible_keys |
+------------+---------+-------+-----------------------------+
| SIMPLE | my_logs| index | index_my_logs_on_created_at |
+------------+---------+-------+-----------------------------+
+-----------------------------+---------+----------+
| key | key_len | rows |
+-----------------------------+---------+----------+
| index_my_logs_on_created_at | …
我的条件是,当我将tableview滚动到底部或顶部时,我需要做一些重新加载,刷新作业,从服务器请求新数据,但我想检查上一个作业是否完成.如果最后一个请求仍然有效,我不应该发出另一个请求.
我正在使用从dispatch_queue_create()创建的相同后台队列来处理httpRequest.
- (id)init {
self = [super init];
if (self) {
...
dataLoadingQueue = dispatch_queue_create(@"DataLoadingQueue", NULL);
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
从现在开始,我只使用BOOL值来检测作业是否正在工作.像这样的东西:
if(!self.isLoading){
dispatch_async(dataLoadingQueue, ^{
self.isLoading = YES;
[self loadDataFromServer];
});
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有任何方法可以将代码更改为如下所示:
if(isQueueEmpty(dataLoadingQueue)){
dispatch_async(dataLoadingQueue, ^{
[self loadDataFromServer];
});
}
Run Code Online (Sandbox Code Playgroud)
因此,我可以删除显示在任何地方并需要继续跟踪的烦人的BOOL值.
我有一个像
val largeDf = someLargeDataframe.cache
Run Code Online (Sandbox Code Playgroud)
现在我需要将它与一个小的联合并再次缓存它
val tinyDf = someTinyDataframe.cache
val newDataframe = largeDf.union(tinyDf).cached
tinyDf.unpersist()
largeDf.unpersist()
Run Code Online (Sandbox Code Playgroud)
这是非常低效的,因为它需要再次重新缓存所有数据。有没有什么有效的方法可以将少量数据添加到大型缓存数据帧中?
阅读 Teodors 的解释后,我知道在对新数据帧执行某些操作之前,我无法取消保留旧数据帧。但是如果我需要做这样的事情怎么办?
def myProcess(df1: Dataframe, df2: Dataframe): Dataframe{
val df1_trans = df1.map(....).cache
val df2_trans = df2.map(....).cache
doSomeAction(df1_trans, df2_trans)
val finalDf = df1_trans.union(df2_trans).map(....).cache
// df1_trans.unpersist()
// df2_trans.unpersist()
finalDf
}
Run Code Online (Sandbox Code Playgroud)
我希望我的 df1_trans 和 df2_trans 被缓存以提高函数内部的性能,因为它们将被多次调用,但我最终需要返回的数据帧也是由 df1_trans 和 df2_trans 构造的,如果我不能取消它们在离开函数之前,我永远找不到其他地方可以做到这一点,但是,如果我取消保留它们,我的 finalDf 将不会从缓存中受益。
在这种情况下我能做什么?谢谢!
我想创建一个键为整数且值为可变Set的Map对象。但是,当我从GroupBy函数创建Map对象时,可变集合中的值无法再更改。谁能告诉我为什么会这样?
import scala.collection.mutable
val groupedMap: Map[Int, mutable.Set[Int]] =
List((1,1),(1,2),(2,3))
.groupBy(_._1)
.mapValues(_.map(_._2).to[mutable.Set])
val originalMap: Map[Int, mutable.Set[Int]] =
Map(1 -> mutable.Set(1, 2), 2 -> mutable.Set(3))
println(groupedMap) // Map(1 -> Set(1, 2), 2 -> Set(3))
println(originalMap) // Map(1 -> Set(1, 2), 2 -> Set(3))
groupedMap(1) += 99
originalMap(1) += 99
println(groupedMap) // Map(1 -> Set(1, 2), 2 -> Set(3)) <- HERE IS THE PROBLEM, THE VALUE 99 CAN NOT BE ADDED TO MY MUTABLE SET!
println(originalMap) // Map(1 -> Set(99, 1, …Run Code Online (Sandbox Code Playgroud) 我是JAVA编程的初学者.最近,我尝试使用s 的map&filter功能,Stream如下面的代码所示.
List<String> strList = Arrays.asList("abc", "", "bcd", "", "defg", "jk");
long count = strList.stream().filter(x -> x.isEmpty()).count();
System.out.printf("List %s has %d empty strings %n", strList, count);
Run Code Online (Sandbox Code Playgroud)
但是,编译器总是抱怨我需要"创建局部变量x".
也许我失去了一些基本步骤,这些步骤太容易在Google上找到任何相关的讨论.
我的JAVA编译器版本是J2SE 1.5,我将java.util.stream.*导入到我的文件中.
谢谢!
java functional-programming local-variables compiler-warnings java-stream
apache-spark ×1
caching ×1
convert-tz ×1
dataframe ×1
dateadd ×1
dictionary ×1
double ×1
group-by ×1
integer ×1
ios ×1
is-empty ×1
java ×1
java-stream ×1
mutable ×1
mysql ×1
performance ×1
pow ×1
queue ×1
scala ×1
set ×1
swift ×1
timezone ×1
union ×1