我有一个A类,它有一个静态的对象向量.对象属于B类
class A {
public:
static void InstantiateVector();
private:
static vector<B> vector_of_B;
}
Run Code Online (Sandbox Code Playgroud)
在函数InstantiateVector()中
for (i=0; i < 5; i++) {
B b = B();
vector<B>.push_back(b);
}
Run Code Online (Sandbox Code Playgroud)
但我使用visual studio 2008编译错误:未解析的外部符号......是否可以使用上述方法实例化静态向量?对于要创建的对象b,必须从输入文件中读取一些数据,并将其存储为b的成员变量
或者它是不可能的,只有简单的静态向量是可能的?我在某处读到要实例化静态向量,首先必须定义一个const int a [] = {1,2,3},然后将[]复制到向量中
我有一个DataFrame df,我尝试遍历每一行以将两列的值映射到新值,但是在将包含映射的字典传递给df.apply时遇到了问题
df.apply(lambda row: (map_dict[row['colA']], map_dict[row['colB']]), axis=1, args=(map_dict,), map_dict=map_dict)
Run Code Online (Sandbox Code Playgroud)
我收到错误消息
File "<console>", line 1
SyntaxError: Generator expression must be parenthesized if not sole argument
Run Code Online (Sandbox Code Playgroud)
我试图阅读官方文档,但是我很难理解它对args参数的解释http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html
我也尝试过将map_dict作为关键字或位置参数传递,但是我仍然遇到相同的错误
我正在使用pyspark和pyspark的python日志记录,DEBUG级别的消息正在使用所示示例充斥我的日志文件。如何防止这种情况发生?一个简单的解决方案是将日志级别设置为INFO,但是我需要记录自己的python DEBUG级别消息
2015-12-13 15:13:32 4906 DEBUG : Command to send: j
i
rj
org.apache.spark.SparkConf
e
2015-12-13 15:13:32 4906 DEBUG : Answer received: yv
2015-12-13 15:13:32 4906 DEBUG : Command to send: j
i
rj
org.apache.spark.api.java.*
e
2015-12-13 15:13:32 4906 DEBUG : Answer received: yv
2015-12-13 15:13:32 4906 DEBUG : Command to send: j
i
rj
org.apache.spark.api.python.*
e
Run Code Online (Sandbox Code Playgroud) 我在纱线簇上运行火花。我试图启动历史服务器
./start-history-server.sh
Run Code Online (Sandbox Code Playgroud)
但出现以下错误。
starting org.apache.spark.deploy.history.HistoryServer, logging to /home/abc/spark/spark-1.5.1-bin-hadoop2.6/sbin/../logs/spark-abc-org.apache.spark.deploy.history.HistoryServer-1-abc-Efg.out
failed to launch org.apache.spark.deploy.history.HistoryServer:
at org.apache.spark.deploy.history.FsHistoryProvider.<init>(FsHistoryProvider.scala:47)
... 6 more
full log in /home/abc/spark/spark-1.5.1-bin-hadoop2.6/sbin/../logs/spark-abc-org.apache.spark.deploy.history.HistoryServer-1-abc-Efg.out
Run Code Online (Sandbox Code Playgroud)
我已将 spark.eventLog.enabled = true 和 spark.history.fs.logDirectory 和 spark.eventLog.dir 设置为 hdfs 日志记录目录。
为什么我无法启动历史服务器?
更新 1:
谢谢stf告诉我查看日志文件;我不知道它存在!
我意识到我的问题出在我在spark-env.sh 中的设置中
export SPARK_HISTORY_OPTS="-Dspark.eventLog.enabled=true -Dspark.eventLog.dir=hdfs:///localhost/eventLogging spark.history.fs.logDirectory=hdfs:///localhost/eventLogging"
Run Code Online (Sandbox Code Playgroud)
正斜杠变成点
Error: Could not find or load main class spark.history.fs.logDirectory=hdfs:...localhost.eventLogging
Run Code Online (Sandbox Code Playgroud)
知道如何防止这种情况发生吗?
更新 2: 在 stf 的帮助下解决了这个问题。spark-env.sh 中的正确设置是
SPARK_HISTORY_OPTS="$SPARK_HISTORY_OPTS -Dspark.eventLog.enabled=true -Dspark.eventLog.dir=hdfs://localhost/eventLogging -Dspark.history.fs.logDirectory=hdfs://localhost/eventLogging"
Run Code Online (Sandbox Code Playgroud) 我有一个运行两个下标 t1 和 t2 的 bash 脚本。t1 和 t2 都是后台进程,t1 会引发错误。如何捕获此错误并完全退出整个脚本?
#!/bin/bash
set -e
error1() {
echo "exit whole script!!!"
exit 1
}
# this script will rise an error
./t1.sh &
pid1=$!
./t2.sh &
pid2=$!
wait $pid2
if [ $pid2 -eq 0 ]; then
trap 'error1' ERR
fi
wait $pid1
if [ $pid1 -eq 0 ]; then
trap 'error1' ERR
fi
Run Code Online (Sandbox Code Playgroud) 我可以在一台笔记本电脑中以yarn client模式运行pyspark,并且尝试在另一台笔记本电脑中进行设置。但是,这次我无法运行它。
当我尝试以yarn client模式启动pyspark时,出现以下错误。我正在使用动态资源分配,已将SPARK_EXECUTOR_MEMORY设置为小于纱线容器内存。我正在使用hadoop 2.6.4,spark 1.6.1,ubuntu 15.10
该错误是否可能是由于网络问题引起的?
16/06/12 01:49:34 INFO scheduler.DAGScheduler: Executor lost: 1 (epoch 0)
In [1]: 16/06/12 01:49:34 INFO cluster.YarnClientSchedulerBackend: Disabling executor 1.
16/06/12 01:49:34 INFO storage.BlockManagerMasterEndpoint: Trying to remove executor 1 from BlockManagerMaster.
16/06/12 01:49:34 INFO storage.BlockManagerMasterEndpoint: Removing block manager BlockManagerId(1, 192.168.2.16, 37900)
16/06/12 01:49:34 ERROR client.TransportClient: Failed to send RPC 9123554941984942265 to 192.168.2.16/192.168.2.16:47630: java.nio.channels.ClosedChannelException
java.nio.channels.ClosedChannelException
16/06/12 01:49:34 INFO storage.BlockManagerMaster: Removed 1 successfully in removeExecutor
16/06/12 01:49:34 WARN cluster.YarnSchedulerBackend$YarnSchedulerEndpoint: Attempted to get executor loss reason for …Run Code Online (Sandbox Code Playgroud) 我有一个vector<int>* arr,实际上是一个2D数组.
arr = new vector<int> [size];
Run Code Online (Sandbox Code Playgroud)
我这样做是否可以
delete arr;
Run Code Online (Sandbox Code Playgroud)
将arr[i]自动删除,因为它是标准向量?
我现在正在学习Spark,它似乎是Pandas Dataframe的大数据解决方案,但我有这个问题让我不确定.
目前我使用HDF5存储大于内存的Pandas数据帧.HDF5是一个很棒的工具,它允许我对pandas数据帧进行分块.因此,当我需要对大型Pandas数据帧进行处理时,我将以块的形式进行处理.但是Pandas不支持分布式处理,而HDF5仅适用于单个PC环境.
使用Spark数据框架可能是解决方案,但我对Spark的理解是数据框架必须能够适应内存,并且一旦作为Spark数据框加载,Spark就会将数据框分发给不同的工作人员来进行分布式处理.
我的理解是否正确?如果是这种情况,那么Spark如何处理大于内存的数据帧?它是否支持像HDF5一样的分块?
如果n很大,k非常小,我可以说O(kn)是线性复杂度吗?
如果k接近n/2但不超过n/2怎么办?我认为它仍然是线性复杂性吗?或二次复杂度O(n ^ 2)?
考虑O(kn)是二次复杂度,k有多大是有限制的吗?