我正在 Go 中使用 Elasticsearch,我遵循了本指南: https: //developer.okta.com/blog/2021/04/23/elasticsearch-go-developers-guide
我使用 docker 设置了 Elastic。验证 Elasticsearch 是否正在运行:
$ curl http://localhost:9200
{
"name" : "0e9e2916eca5",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "jh8PVKNASpO3uK87Jzoq6Q",
"version" : {
"number" : "7.5.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "8bec50e1e0ad29dad5653712cf3bb580cd1afcdf",
"build_date" : "2020-01-15T12:11:52.313576Z",
"build_snapshot" : false,
"lucene_version" : "8.3.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Run Code Online (Sandbox Code Playgroud)
从浏览器看来也不错。
接下来,我设置了一个示例 Go 程序来测试它:
package main
import (
"testing"
"github.com/elastic/go-elasticsearch/v8"
)
func Test_elastic(t *testing.T) {
es, err …Run Code Online (Sandbox Code Playgroud) 我有以下名为ttm的数据框:
usersidid clienthostid eventSumTotal LoginDaysSum score
0 12 1 60 3 1728
1 11 1 240 3 1331
3 5 1 5 3 125
4 6 1 16 2 216
2 10 3 270 3 1000
5 8 3 18 2 512
Run Code Online (Sandbox Code Playgroud)
当我做
ttm.groupby(['clienthostid'], as_index=False, sort=False)['LoginDaysSum'].count()
Run Code Online (Sandbox Code Playgroud)
我得到了我的预期(虽然我希望结果在一个名为'ratio'的新标签下):
clienthostid LoginDaysSum
0 1 4
1 3 2
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做
ttm.groupby(['clienthostid'], as_index=False, sort=False)['LoginDaysSum'].apply(lambda x: x.iloc[0] / x.iloc[1])
Run Code Online (Sandbox Code Playgroud)
我明白了:
0 1.0
1 1.5
Run Code Online (Sandbox Code Playgroud)
谢谢,
我写了一个小脚本来复制SQL服务器之间的表.它有效,但其中一列将类型从varchar更改为text ...如何使其复制具有相同列类型的表?
import pymssql
import pandas as pd
from sqlalchemy import create_engine
db_server= 1.2.3.4\\r2
db_database="Test_DB"
db_user="vaf"
db_password="1234"
local_db_server="1.1.1.1\\r2"
local_db_database="Test_DB"
local_db_user="vaf"
local_db_password="1234"
some_query=("""
select * from some_table
""")
def main():
conn=pymssql.connect(server=local_db_server,user=local_db_user,password=local_db_password,database=local_db_database,charset='UTF-8')
data=pd.io.sql.read_sql(some_query,conn)
connection_string='mssql+pymssql://{}:{}@{}/{}'.format(db_user,db_password,db_server,db_database)
engine=create_engine(connection_string)
data.to_sql(name="some_table",con=engine,if_exists='replace',index=False)
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
谢谢
我在我的代码中使用Pandas,并使用下面的代码操作一些数据框:
def exit(exitCode, errorMsg=None, monitor_thread=None):
if exitCode is not None:
logger.error(errorMsg)
logger.error(traceback.format_exc())
sys.exit(exitCode)
try:
results['name'] = results['name'].astype(float).astype(int)
except Exception as e: # catch *all* exceptions
exit("Failed to convert name" + str(e), 8)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Traceback(最近一次调用最后一次):
文件"DIST\FDmanInfo.py",第206行,in
在主文件中输入"DIST\FDmanInfo.py",第191行
文件"\ local\Python\lib\site-packages\pandas\core\generic.py",第3054行,在astype raise_on_error = raise_on_error,**kwargs)
文件"\ local\Python\lib\site-packages\pandas\core\internals.py",第3189行,在astype中
return self.apply('astype',dtype = dtype,**kwargs)
文件"\ local\Python\lib\site-packages\pandas\core\internals.py",第3056行,在apply applied = getattr(b,f)(**kwargs)
文件 "\本地\ Python的\ LIB \站点包\大熊猫\核心\ internals.py",线路461,在astype值=值,**kwargs)
文件"\ local\Python\lib\site-packages\pandas\core\internals.py",第504行,_astype values = _astype_nansafe(values.ravel(),dtype,copy = True)
文件"\ local\Python\lib\site-packages\pandas\types\cast.py",第531行,在_astype_nansafe中引发ValueError('无法将NA转换为整数')ValueError:无法将NA转换为整数
我想知道哪一行正在解决这个问题,但是我无法在任何地方找到异常打印它(行)的日志,就像输入数据帧一样:
Run Code Online (Sandbox Code Playgroud)name0 1.0
1 NaN
2 3.0
3 4.0
我希望它在它失败的行上打印,在这种情况下"1 NaN",它甚至可能吗?
谢谢,
我有一个包含具有以下方法的类的代码:
public string AddEvent(DateTime date, int eventCount, int? eventId, string eventGuid){...}
Run Code Online (Sandbox Code Playgroud)
我的问题是那里的问号是做什么的?我的猜测它与重载有关,因为有另一种重载方法,AddEvent但我不确定...
我收到了一项可以同时执行多项任务的服务。我被分配添加一个中止选项,该选项应该结束所有当前正在运行的任务。因为系统已经实现,所以将 CancellationTokenSource 传递给每个任务是有问题的,所以我所做的是创建一个所有任务都会侦听取消的单个令牌。当中止接收时,该令牌将发送取消,然后将创建一个新的 CancellationTokenSource 实例。我无法验证所有任务,直到中止之前结束在 启动 CancellationTokenSource 的新实例
几个问题:
起初我以为 TokenSource.Cancel() 只是一个发送的事件,但它似乎被卡在“高位”,所以任何具有相同令牌的新任务也会收到取消,是真的吗?
理想情况下,每个任务都有自己的取消令牌(对吗?),问题是谁需要持有该令牌?谁调用了该任务或任务本身?因为一旦发送取消,我将需要永远保留该令牌,因为我无法判断任务何时到达退出点。
是否有一种已经实现的方法来监视所有当前正在运行的任务,以便在发送取消时我将确保在允许任何新任务之前所有任务都已结束?我使用信号量做到了这一点,但它看起来像是一个糟糕的解决方案。
对于新手问题,我很抱歉,我已经实现了我需要的内容并且它有效,但质量远低于标准,我希望以正确的方式改进它。