目前我们正在制作一个带有gmaps的传单项目,我遇到了一些问题.
添加多个标记(每个都有一个弹出窗口)后,我们要打开它们.
为此,我使用以下代码安静:
L.Map = L.Map.extend({
openPopup: function(popup) {
// this.closePopup();
this._popup = popup;
return this.addLayer(popup).fire('popupopen', {
popup: this._popup
});
}
});
Run Code Online (Sandbox Code Playgroud)
在页面加载上一切都按预期工作.
但是这里出现了失败的情况:
之后pageload,用户zooms in和一些标记是out of the “view area”用户的.
几秒钟后,网站加载new position data(用于标记)using a rest interface.
在发送位置数据之后,我当前移除所有标记并在发送的位置重新创建它们并打开它们.
而这就marker.openPopup()触发了,那map moves就是那个popup fits in the “view area” of the user.
prevent leaflet to drag the map在这种情况下我该怎么办?
因此,假设您有一个 Python 进程,它正在以每秒大约 500 行的速度实时收集来自排队系统的数据(这可以进一步并行化以减少到大约 50 ps)并将其附加到DataFrame:
rq = MyRedisQueue(..)
df = pd.DataFrame()
while 1:
recv = rq.get(block=True)
# some converting
df.append(recv, ignore_index = True)
Run Code Online (Sandbox Code Playgroud)
现在的问题是:如何根据这些数据利用 CPU?所以我充分认识到的局限性GIL,看着成多处理管理器 的命名空间,这里太,但它看起来像有一些缺点关于延迟的centerally保持数据帧。在深入研究之前,我还尝试pool.map了我认为pickle在进程之间应用的方法,这种方法很慢并且开销太大。
所以在所有这一切之后,我终于想知道,如何(如果)每秒 500 行(甚至每秒 50 行)的插入可以传输到不同的进程,同时还有一些 CPU 时间用于对子项中的数据应用统计和启发式流程?
也许在两个进程之间实现自定义 tcp 套接字或排队系统会更好?或者在pandas其他库中是否有一些实现可以真正允许快速访问父进程中的一个大数据框?我爱熊猫!
/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/bin/python3.6 "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 55819 --file "/Applications/PyCharm CE.app/Contents/helpers/pycharm/_jb_unittest_runner.py" --target test_output.TestMispOutputBot.test_event
Testing started at 10:31 ...
pydev debugger: process 3170 is connecting
Run Code Online (Sandbox Code Playgroud)
在我放弃并终止进程之前 10 分钟没有输出。
Traceback (most recent call last):
File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 1599, in <module>
globals = debugger.run(setup['file'], None, None, is_module)
File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 994, in run
time.sleep(0.1) # busy wait until we receive run command
KeyboardInterrupt
Run Code Online (Sandbox Code Playgroud)
我尝试了我发现的有关该错误消息的所有内容:
用漂亮的记录器编写代码
import logging
def init_logging():
logFormatter = logging.Formatter("[%(asctime)s] %(levelname)s::%(module)s::%(funcName)s() %(message)s")
rootLogger = logging.getLogger()
LOG_DIR = os.getcwd() + '/' + 'logs'
if not os.path.exists(LOG_DIR):
os.makedirs(LOG_DIR)
fileHandler = logging.FileHandler("{0}/{1}.log".format(LOG_DIR, "g2"))
fileHandler.setFormatter(logFormatter)
rootLogger.addHandler(fileHandler)
rootLogger.setLevel(logging.DEBUG)
consoleHandler = logging.StreamHandler()
consoleHandler.setFormatter(logFormatter)
rootLogger.addHandler(consoleHandler)
return rootLogger
logger = init_logging()
Run Code Online (Sandbox Code Playgroud)
按预期工作.使用logger.debug("Hello! :)")日志记录到文件和控制台.
在第二步中,您要导入一个外部模块,该模块也使用日志记录模块进行日志记录:
pip3 install pymisp(或任何其他外部模块)安装它from pymisp import PyMISP(或任何其他外部模块)导入它self.pymisp = PyMISP(self.ds_model.api_url, self.ds_model.api_key, False, 'json')(或任何其他...)创建它的对象现在发生的是,从导入的模块输出的每个调试日志都会记录到日志文件和控制台.现在的问题是,如何为导入的模块设置不同的(更高)日志级别.
假设df['time']是从类型timedelta64[ns]和df['a']以及df['b']从类型float64,这两个系列可以被绘制这样的:
import pandas as pd
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, sharex=True)
time_values = pd.to_datetime(df['time'])
axs[0].plot(time_values, df['a'])
axs[1].plot(time_values, df['b'])
plt.show()
Run Code Online (Sandbox Code Playgroud)
这有效..但给出了以下警告:
FutureWarning: Passing timedelta64-dtype data is deprecated, will raise a TypeError in a future version
Run Code Online (Sandbox Code Playgroud)
那么应该使用什么来代替在pd.to_datetime中显示timedelta64[ns]为人类可读的时间matplotlib?
有 500 个,不断增长DataFrames,我想将(对于每个 DataFrame 独立的)数据的操作提交到dask. 我的主要问题是:可以dask保存不断提交的数据,所以我可以submit对所有提交的数据进行函数处理——而不仅仅是新提交的数据?
但是让我们用一个例子来解释它:
创建一个dask_server.py:
from dask.distributed import Client, LocalCluster
HOST = '127.0.0.1'
SCHEDULER_PORT = 8711
DASHBOARD_PORT = ':8710'
def run_cluster():
cluster = LocalCluster(dashboard_address=DASHBOARD_PORT, scheduler_port=SCHEDULER_PORT, n_workers=8)
print("DASK Cluster Dashboard = http://%s%s/status" % (HOST, DASHBOARD_PORT))
client = Client(cluster)
print(client)
print("Press Enter to quit ...")
input()
if __name__ == '__main__':
run_cluster()
Run Code Online (Sandbox Code Playgroud)
现在,我可以从我的连接my_stream.py,并开始submit和gather数据:
DASK_CLIENT_IP = '127.0.0.1'
dask_con_string = 'tcp://%s:%s' % (DASK_CLIENT_IP, DASK_CLIENT_PORT)
dask_client …Run Code Online (Sandbox Code Playgroud) 是否可以根据HTTP-Header重定向用户content-type?
例如:
1)
应用程序正在尝试加载,localhost/res/123/var/abc并content-type设置为:
application/json
Run Code Online (Sandbox Code Playgroud)
服务器应该只将JSON-Result返回给应用程序(已实现).
2)
如果正常的Web浏览器正在访问该URL localhost/res/123/var/abc,则将content-type其设置为:
text/html
Run Code Online (Sandbox Code Playgroud)
在这种情况下,服务器应该重定向浏览器以输出webview(例如index_web.html).
我可以在不使用PHP的情况下实现这样的事情吗
我想将JSON-Post中的值解析为Java-Variables.但他们总是空着的!
JSON-帖子:
{"algID":0,"vertices":[1,2,3]}
Run Code Online (Sandbox Code Playgroud)
我尝试将其解析为Java-Variables:
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Path("getCloseness_vertices")
public String getCloseness_vertices(
@FormParam("algID") int algID,
@FormParam("vertices") IntArray vertices)
Run Code Online (Sandbox Code Playgroud)
如果我这样尝试:
public String getCloseness_vertices(int algID)
Run Code Online (Sandbox Code Playgroud)
Tomcat说:
用于Java类int的消息体读取器,Java类型int和MIME媒体类型application/json; charset =未找到UTF-8.
任何帮助都会很好,我只是不明白.
尽我所能把它放在一张照片中:
我想增加width具有更高z值的两个数据点之间的此类线的数量。当它们超过某个阈值时将它们涂成红色会很好。
pd.DataFrame()?样机示例:
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
date_today = datetime.now()
days = pd.date_range(date_today, date_today + timedelta(minutes=1), freq='s')
np.random.seed(seed=1111)
y = np.random.randint(10, high=13, size=len(days))
z = np.random.randint(1, high=10, size=len(days))
df = pd.DataFrame({'ts': days, 'y': y, 'z': z})
df = df.set_index('ts')
print(df)
df.y.plot()
Run Code Online (Sandbox Code Playgroud) python-3.x ×5
pandas ×3
dataframe ×2
json ×2
matplotlib ×2
python ×2
.htaccess ×1
apache ×1
content-type ×1
dask ×1
debugging ×1
io ×1
java ×1
javascript ×1
jersey ×1
leaflet ×1
logging ×1
mod-rewrite ×1
parsing ×1
plot ×1
postgresql ×1
pycharm ×1
pydev ×1
streamz ×1