我正在使用pyspark来估计逻辑回归模型的参数.我使用spark计算似然和梯度,然后使用scipy的最小化函数进行优化(L-BFGS-B).
我使用yarn-client模式来运行我的应用程序.我的应用程序可以开始运行没有任何问题.但是,过了一段时间后,它会报告以下错误:
Traceback (most recent call last):
File "/home/panc/research/MixedLogistic/software/mixedlogistic/mixedlogistic_spark/simulation/20160716-1626/spark_1m_data.py", line 115, in <module>
res = trainEM2(distData, params0, verbose=True, em_tol=1e-5, opt_method='L-BFGS-B')
File "/home/panc/research/MixedLogistic/software/mixedlogistic/mixedlogistic_spark/Train2.py", line 166, in trainEM
options={'disp': False})
File "/apps/rhel6/Anaconda-2.0.1/lib/python2.7/site-packages/scipy/optimize/_minimize.py", line 447, in minimize
callback=callback, **options)
File "/apps/rhel6/Anaconda-2.0.1/lib/python2.7/site-packages/scipy/optimize/lbfgsb.py", line 330, in _minimize_lbfgsb
f, g = func_and_grad(x)
File "/apps/rhel6/Anaconda-2.0.1/lib/python2.7/site-packages/scipy/optimize/lbfgsb.py", line 278, in func_and_grad
f = fun(x, *args)
File "/apps/rhel6/Anaconda-2.0.1/lib/python2.7/site-packages/scipy/optimize/optimize.py", line 289, in function_wrapper
return function(*(wrapper_args + args))
File "/home/panc/research/MixedLogistic/software/mixedlogistic/mixedlogistic_spark/Train2.py", line 146, in fun_observedQj
return dataAndWeightsj_old.map(lambda _: calObservedQj(_[0], _[1], vparamsj, params0)).sum()
File …Run Code Online (Sandbox Code Playgroud) 我有一个大型数据集(> 40G),我想将其存储在 S3 中,然后使用 Athena 进行查询。
正如这篇博文所建议的,我可以将我的数据存储在以下分层目录结构中,以便MSCK REPAIR在从我的数据集创建表时自动添加分区。
s3://yourBucket/pathToTable/<PARTITION_COLUMN_NAME>=<VALUE>/<PARTITION_COLUMN_NAME>=<VALUE>/
Run Code Online (Sandbox Code Playgroud)
但是,这需要我将数据集拆分为许多较小的数据文件,并且每个文件都将根据分区键存储在嵌套文件夹下。
虽然使用分区可以减少 Athena 扫描的数据量,从而加快查询速度,但管理大量小文件会导致 S3 的性能问题吗?我需要考虑权衡吗?
有人在 Rstudio (版本 0.99.489)中使用 R rgl 包(版本 0.95.1201)吗?每次我打电话时library(rgl),Rstudio 都会崩溃。
更新
我通过从源安装版本 0.95.1367 更新了 rgl。Rstudio 仍然崩溃。但是当我在 R GUI 或终端中的 R 中运行它时,没有问题。最近我将 XQuartz 更新到了 2.7.9_beta1。我不确定这是否是原因。
我的系统是:Mac OSX Yosemite 10.10.5
我对 RDD 在 Spark 中的作用域感到困惑。
根据这个线程
RDD 是否被缓存是 RDD 对象可变状态的一部分。如果你调用 rdd.cache 它将被标记为从那时起缓存。从哪个范围访问它并不重要。
因此,如果我定义了一个在内部创建了新 rdd 的函数,例如(python 代码)
# there is an rdd called "otherRdd" outside the function
def myFun(args):
...
newRdd = otherRdd.map(some_function)
newRdd.persist()
...
Run Code Online (Sandbox Code Playgroud)
请问newRdd全局命名空间中存在吗?或者它只在环境中可见myFun?
如果它只在 的环境中可见,那么执行完成myFun后myFun,Spark 会自动unpersist执行newRdd吗?
我正在运行一个联合两个非常大的表的 db2 查询。我十小时前就开始查询了,现在好像还没有完成。
但是,当我使用 检查进程的状态时top,它显示状态为“S”。这是否意味着我的查询停止运行?但我找不到任何错误消息。
我如何检查查询发生了什么?
我正在研究Scala并遇到了以下难题.
我可以定义以下案例类:
abstract class Expr
case class Number(n: Int) extends Expr
Run Code Online (Sandbox Code Playgroud)
当我从类中创建两个实例Number并进行比较时
val x1 = Number(1)
val x2 = Number(1)
x1 == x2
Run Code Online (Sandbox Code Playgroud)
我有以下结果:
x1:数字=数字(1)
x2:数字=数字(1)
res0:Boolean = true
所以,x1和x2是相同的.
但是,如果我case在Number类定义中删除修饰符,即
abstract class Expr
class Number(n: Int) extends Expr
Run Code Online (Sandbox Code Playgroud)
然后Number以相同的方式比较该类中的两个实例
val x1 = new Number(1)
val x2 = new Number(1)
x1 == x2
Run Code Online (Sandbox Code Playgroud)
我有以下输出:
x1:Number = Number @ 1175e2db
x2:Number = Number @ 61064425
res0:Boolean = false
它说这次 …
在我的程序中,我需要以下矩阵乘法:
A = U * B * U^T
Run Code Online (Sandbox Code Playgroud)
其中B是M * M对称矩阵,并且U是N * M其列为正交的矩阵.所以我希望A它也是一个对称矩阵.
但是,Python并没有这么说.
import numpy as np
import pymc.gp.incomplete_chol as pyichol
np.random.seed(10)
# Create symmetric matrix B
b = np.matrix(np.random.randn(20).reshape((5,4)))
B = b * b.T
np.all(B== B.T)
Run Code Online (Sandbox Code Playgroud)
B确实是对称的:
In[37]: np.all(B== B.T)
Out[37]: True
# Create U
m = np.matrix(np.random.random(100).reshape(10,10))
M = m * m.T
# M
U, s, V = np.linalg.svd(M)
U = U[:, :5]
U.T * U
In[41]: …Run Code Online (Sandbox Code Playgroud) 为什么以下嵌套函数f2不能按预期工作?
c = 2
f1 = function(a,b){
(a+b)*c
}
f1(1,2) # 6
f2 = function(a,b,c){
f1(a,b)
}
f2(1,2,c=3) # still 6, expect 9
Run Code Online (Sandbox Code Playgroud)
更新
我发现以下修改有效:
f2 = function(a,b,c){
c <<- c
f1(a,b)
}
f2(1,2,c=3) # returns 9 as expected
Run Code Online (Sandbox Code Playgroud)
但我对函数调用如何沿着环境路径搜索值感到困惑。如果我的问题只是由于 R 的惰性求值,我只需要c <- c. 然后新的c将在被调用的环境中f2。由于f1是 嵌套在 中f2,因此它的环境也嵌套在 的环境中f2。所以当我需要cin 的时候f1,应该能够c在父环境中找到。然而事实证明它只能找到 global 的环境c,而不能找到cinf2的环境。