小编林鼎棋*_*林鼎棋的帖子

如何在Swift语言中获得某些Integer的强大功能?

我最近学得很快,但我有一个无法找到答案的基本问题

我想得到类似的东西

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 ...无论如何)

如果我有两个整数并且我想进行电源操作,我该怎样才能顺利完成?

谢谢!

double integer pow swift

88
推荐指数
8
解决办法
9万
查看次数

在MYSQL查询中有效转换时区的最佳方法

我的表“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 | …

mysql performance timezone dateadd convert-tz

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

如何检查调度队列是否为空?

我的条件是,当我将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值.

queue multithreading grand-central-dispatch ios is-empty

5
推荐指数
1
解决办法
3284
查看次数

将缓存的 spark 数据帧与其他数据帧连接并再次缓存的有效方法

我有一个像

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 将不会从缓存中受益。

在这种情况下我能做什么?谢谢!

union caching dataframe apache-spark

5
推荐指数
1
解决办法
5383
查看次数

Scala:为什么如果从GroupBy创建Map,则无法更改Map中的可变值

我想创建一个键为整数且值为可变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)

dictionary scala group-by mutable set

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

为什么我不能在JAVA项目中实现Streams功能?

我是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

0
推荐指数
1
解决办法
61
查看次数