我最近学得很快,但我有一个无法找到答案的基本问题
我想得到类似的东西
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