我正在尝试捕获如果multiprocessing.Queue为空时引发的Queue.Empty异常.以下不起作用:
import multiprocessing
f = multiprocessing.Queue()
try:
f.get(True,0.1)
except Queue.Empty:
print 'foo'
Run Code Online (Sandbox Code Playgroud)
这给了我一个名称错误:NameError:名称'Queue'未定义
用multiprocessing.Queue.Empty替换Queue.Empty也没有帮助.在这种情况下,它给了我一个"AttributeError:'function'对象没有属性'Empty'"异常.
我可以通过确定当前的连接数
db.serverStatus().connections
Run Code Online (Sandbox Code Playgroud)
但所有这些都是我当前的连接数.有没有什么可以确定哪些ips已连接以及它们已分配给哪个连接号?
我想在配置文件中指定所有Spark的属性,然后在运行时加载该配置文件.
~~~~~~~~~~编辑~~~~~~~~~~~
事实证明我对如何去做这件事非常困惑.忽略这个问题的其余部分.要查看有关如何将.properties文件加载到spark集群的简单解决方案(在Java Spark中),请参阅下面的答案.
以下原始问题仅供参考.
~~~~~~~~~~~~~~~~~~~~~~~~
我想要
举个简单的例子,假设我想根据字符串过滤日志文件中的行.下面我有一个简单的Java Spark程序,它从文件中读取数据并根据用户定义的字符串对其进行过滤.该程序采用一个参数,即输入源文件.
Java Spark代码
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
public class SimpleSpark {
public static void main(String[] args) {
String inputFile = args[0]; // Should be some file on your system
SparkConf conf = new SparkConf();// .setAppName("Simple Application");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<String> logData = sc.textFile(inputFile).cache();
final String filterString = conf.get("filterstr");
long numberLines = logData.filter(new Function<String, Boolean>() {
public Boolean call(String s) {
return s.contains(filterString);
}
}).count(); …Run Code Online (Sandbox Code Playgroud) 我有一个用python编写的客户端服务器架构.大部分时间它工作正常,但有时,在我停止服务器并在之后立即重新启动它时,我收到以下错误:
接受失败,原因是:22消息无效参数,错误:[Errno 22]参数无效
但是,如果我等待几分钟并再次启动相同的脚本而没有任何更改,它可以正常工作.
这是我在服务器上用来接受来自客户端的传入连接的循环:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('',port))
s.listen(1)
except:
#logError()
while True:
try:
conn, address = s.accept() #THIS ACCEPT FAILS SOMETIMES
multiprocessing.Process(target=HandleConnection, args=(conn, address, messageQueue, taskQueue, IOLock, numberOfConnections, numberOfConnectionsLock,resultsDirectory)).start()
except socket.error, msg:
#logError() -> this except catches the error
Run Code Online (Sandbox Code Playgroud)
运行服务器后端口是否会被阻塞一段时间?如果是这样,是有办法查询,如果口堵住,等待,直到它的畅通,如果我想之后立即它只是退出再次启动服务器吗?
我正在为Android手机编写多人游戏.通过蓝牙进行通信.我已设法使用输入/输出流将字节从一个电话发送到另一个电话.因为我需要能够传输我想要的对象流的对象.但是,当我尝试使用我的流创建一个Objectstream时,我的程序挂起了指令.
public class ConnectedThread extends Thread {
private static final String TAG = "Connected Thread";
private final BluetoothSocket mmSocket;
private final InputStream mmInStream;
private final OutputStream mmOutStream;
private Handler mHandler;
private ObjectInputStream ois;
private ObjectOutputStream oos;
public ConnectedThread(BluetoothSocket socket,Handler h) {
mmSocket = socket;
mHandler = h;
InputStream tmpIn = null;
OutputStream tmpOut = null;
// Get the input and output streams, using temp objects because
// member streams are final
try {
tmpIn = socket.getInputStream();
tmpOut = socket.getOutputStream();
} …Run Code Online (Sandbox Code Playgroud) 我有一个元组列表,我想要一个由元组的第一个值组成的新列表.
即如果列表是:
[(1,5),(4,10),(100,3),(4,8)]
我想创建以下列表:
[1,4,100,4]
以下代码有效:
a = [(1,5),(4,10),(100,3),(4,8)]
l = []
for i in range(len(a)):
l.append(a[i][0])
Run Code Online (Sandbox Code Playgroud)
但似乎应该有更好的方法,例如:
l = itertools.chain(for i in range(len(a)) a[i][0]) #This won't work
Run Code Online (Sandbox Code Playgroud)