我使用火花流作业来处理我的输入请求。
我的spark输入接受一个文件名,下载数据,做一些更改,并将数据发送到下游。
目前,处理一个文件需要2分钟。
这些文件请求是独立的操作,可以并行执行。
目前,当我通过netcat服务器提供输入时,首先处理每个请求,然后处理下一个请求。我希望这次行动是并行的。
@timing
def sleep_func(data):
print("start file processing")
time.sleep(60)
print("end file processing")
return data
rdd = ssc.socketTextStream(sys.argv[1], int(sys.argv[2]))
rdd = rdd.map(sleep_func)
final_rects = rdd.pprint()我试图创建多个sockettextstream,将在每个执行器中处理基于此。
https://spark.apache.org/docs/2.0.2/streaming-programming-guide.html#level-of-parallelism-in-data-receiving
rdd = [ssc.socketTextStream(sys.argv[1], int(sys.argv[2])) for _ in range(5)]但不确定如何分别处理这些单独的流。
发布于 2017-11-01 10:48:54
你的意思是你想要处理一批并行的数据,而不是一个一个地处理,对吗?
https://stackoverflow.com/questions/47052398
复制相似问题