小编pha*_*dej的帖子

Spark SQL:如何在不使用rdd.cache()的情况下缓存sql查询结果

有没有办法在不使用rdd.cache()的情况下缓存缓存sql查询结果?举些例子:

output = sqlContext.sql("SELECT * From people")
Run Code Online (Sandbox Code Playgroud)

我们可以使用output.cache()来缓存结果,但是我们不能使用sql查询来处理它.

所以我想问一下有什么像sqlcontext.cacheTable()来缓存结果吗?

caching query-optimization apache-spark

13
推荐指数
2
解决办法
2万
查看次数

为什么Identity monad有用?

我经常看到这个

看来身份monad是无用的.它不是......但这是另一个话题.

所以任何人都可以告诉我它是如何有用的?

monads haskell functional-programming

12
推荐指数
3
解决办法
3539
查看次数

StateT s(ExceptT em)和ExceptT e(StateT sm)之间有什么区别?

Monad变形金刚很棘手,我不确定(=没有良好的直觉)哪一个应该是最重要的.

haskell monad-transformers

12
推荐指数
2
解决办法
759
查看次数

严格可能在数据定义中

我看过很多会谈/阅读博客文章,你应该有严格的字段,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 ?

haskell strictness

12
推荐指数
1
解决办法
449
查看次数

为什么读取不被声明为协变?

为什么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

scala playframework-2.3

11
推荐指数
2
解决办法
288
查看次数

显示Android Wear样式AlertDialog

我正在寻找一种在Android Wear的设置应用程序中重新创建警报对话框的方法:

预期

这是可以解雇的.

但相反,我得到的是:

实际

只是一个准确的Android对话框.如何在Settings.apk样式中显示AlertDialog?(我认为Android Wear应用程序必须默认)

android android-layout wear-os

11
推荐指数
1
解决办法
2616
查看次数

如何交错流(带背压)

假设我有两个可能无限的流:

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)

javascript rxjs bacon.js

10
推荐指数
1
解决办法
916
查看次数

如何使用更高级别的类型

玩教堂的数字.我遇到的情况是我无法引导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)

haskell

9
推荐指数
2
解决办法
273
查看次数

隐式类是否有命名约定?

例如,在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情况下包含的一切.

scala

9
推荐指数
2
解决办法
897
查看次数

为什么Sum和Product不是Functors

Sum在基础4.7.0.2中定义的没有Functor实例.为什么?

例如,在定义的类型semigroups包有Functor,Applicative并Monad在例如Min,它们的行为likeIdentity` -对我来说很有意义.

haskell typeclass

9
推荐指数
1
解决办法
318
查看次数