有没有办法在不使用rdd.cache()的情况下缓存缓存sql查询结果?举些例子:
output = sqlContext.sql("SELECT * From people")
Run Code Online (Sandbox Code Playgroud)
我们可以使用output.cache()来缓存结果,但是我们不能使用sql查询来处理它.
所以我想问一下有什么像sqlcontext.cacheTable()来缓存结果吗?
我经常看到这个
看来身份monad是无用的.它不是......但这是另一个话题.
所以任何人都可以告诉我它是如何有用的?
Monad变形金刚很棘手,我不确定(=没有良好的直觉)哪一个应该是最重要的.
我看过很多会谈/阅读博客文章,你应该有严格的字段,data以避免各种性能问题,例如:
data Person = Person
{ personName :: !Text
, personBirthday :: !UTCTime
}
Run Code Online (Sandbox Code Playgroud)
这对我来说很有意义.由于对该数据的函数操作是惰性的,因此不会牺牲可组合性.
但是,如果我添加一个Maybe字段:
data Person = Person
{ personName :: !Text
, personBirthday :: !UTCTime
, personAddress :: !(Maybe Address)
}
Run Code Online (Sandbox Code Playgroud)
我将懒惰引入数据结构,毕竟Maybe是一个控制结构.是不是可以毫无价值地躲在Just构造函数后面?
但是,有严格Maybe的strict或通过strict-base-types.但是根据反向依赖(strict,strict-base-types),它们并没有被广泛使用.
所以问题是:为什么Maybe在非控制数据定义中应该或不应该使用strict ?
为什么play-json Readstrait没有被声明为covariant:
trait Reads[+A]
Run Code Online (Sandbox Code Playgroud)
相关要点:https://gist.github.com/robertberry/9410272
协方差/逆变是否会干扰隐含?
或者,如何Reads为密封特征编写实例?https://gist.github.com/phadej/c60912802dc494c3212b
我正在寻找一种在Android Wear的设置应用程序中重新创建警报对话框的方法:

这是可以解雇的.
但相反,我得到的是:

只是一个准确的Android对话框.如何在Settings.apk样式中显示AlertDialog?(我认为Android Wear应用程序必须默认)
假设我有两个可能无限的流:
s1 = a..b..c..d..e...
s2 = 1.2.3.4.5.6.7...
Run Code Online (Sandbox Code Playgroud)
我想合并流,然后用慢速异步操作映射合并流(例如在Bacon with fromPromise和flatMapConcat).
我可以将它们与merge:
me = a12b3.c45d6.7e...
Run Code Online (Sandbox Code Playgroud)
然后映射
s1 = a..b..c..d..e...
s2 = 1.2.3.4.5.6.7...
me = a12b3.c45d6.7e...
mm = a..1..2..b..3..c..4..5..
Run Code Online (Sandbox Code Playgroud)
如你所见,从长远来看,贪婪的 s2流可以获得优势.这是不受欢迎的行为.
该合并行为也不行,因为我想有某种背压有更多的交错,"公平","循环"合并.几个期望的行为的例子:
s1 = a.....b..............c...
s2 = ..1.2.3..................
mm = a...1...b...2...3....c...
s1 = a.........b..........c...
s2 = ..1.2.3..................
mm = a...1...2...b...3....c...
Run Code Online (Sandbox Code Playgroud)
认为这是一种方法s1,s2并将任务发送给工作人员,当时只能处理一项任务.有了merge,flatMapConcat我会得到一个贪婪的任务经理,但我想要更公平的.
我想找一个简单而优雅的解决方案.如果它对任意数量的流很容易通用,那就太好了:
// roundRobinPromiseMap(streams: [Stream a], f: a -> …Run Code Online (Sandbox Code Playgroud) 玩教堂的数字.我遇到的情况是我无法引导GHC类型检查器绕更高阶类型.
首先我写了一个没有任何类型签名的版本:
module ChurchStripped where
zero z _ = z
inc n z s = s (n z s)
natInteger n = n 0 (1+)
add a b = a b inc
{-
*ChurchStripped> natInteger $ add (inc $ inc zero) (inc $ inc $ inc zero)
5
-}
mult a b = a zero (add b)
{-
*ChurchStripped> natInteger $ mult (inc $ inc zero) (inc $ inc $ inc zero)
6
-}
Run Code Online (Sandbox Code Playgroud)
推断类型mult是可怕的,所以我试图用类型定义清理类型:
module Church where …Run Code Online (Sandbox Code Playgroud) 例如,在Objective-C中,类扩展是直接语言构造,我们这样做:
在提交名为NSArray + FKBinarySearch.h的文件中:
@interface NSArray (FKBinarySearch)
// ...
@end
Run Code Online (Sandbox Code Playgroud)
您是否将扩展类命名为:
implicit class IndexedSeqBinarySearch[A](seq: IndexedSeq[A]) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
例如,scalaz调用使用后缀Ops:BooleanOps进行扩展类,甚至扩展自己的特性FoldableOps
但Ops感觉太笼统了,OTOH有包装.同样Ops在scalaz情况下包含的一切.
Sum在基础4.7.0.2中定义的没有Functor实例.为什么?
例如,在定义的类型semigroups包有Functor,Applicative并Monad在例如Min,它们的行为likeIdentity` -对我来说很有意义.
haskell ×5
scala ×2
android ×1
apache-spark ×1
bacon.js ×1
caching ×1
javascript ×1
monads ×1
rxjs ×1
strictness ×1
typeclass ×1
wear-os ×1