小编Eir*_*iks的帖子

为什么mysql连接器断开("在查询期间丢失与MySQL服务器的连接"错误)

当我运行大型查询(查询返回多行)时,我收到 Lost connection to MySQL server during query错误,我无法看到我做错了什么.我使用mysql.com的"新"mysql驱动程序(不是"旧的"MySQLdb),以及与MAMP捆绑在一起的mysql版本.Python 2.7.表未损坏,analyze table nrk2013b_tbl;返回状态正常.这是一个打破的例子:

#!/usr/bin/python2.7
# coding: utf-8

import sys
import mysql.connector # version 2.0.1

connection = mysql.connector.connect(
                    unix_socket="/Applications/MAMP/tmp/mysql/mysql.sock",
                     user="dbUsernam",
                      passwd="dbUserPassword",
                      db="nrk",
                      charset = "utf8",
                      use_unicode = True)
cur = connection.cursor()
cur.execute("USE nrk;")


sql = """SELECT id FROM nrk2013b_tbl WHERE main_news_category = 'Sport'"""
cur.execute(sql)
rows = cur.fetchall()

print rows

sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

这导致我大部分时间都会遇到错误:

Traceback (most recent call last):
  File "train_trainer_test.py", line 20, in <module>
    remaining_rows = cur.fetchall()
  File "/Library/Python/2.7/site-packages/mysql/connector/cursor.py", line 823, in …
Run Code Online (Sandbox Code Playgroud)

python mysql mamp

15
推荐指数
1
解决办法
2万
查看次数

通过距离矩阵聚类scipy - cluster,如何获取原始对象

我无法找到关于scipy中的聚类的任何简单的教程或描述,所以我将尝试解释我的问题:

我尝试对文档进行聚类(分层凝聚聚类),并为每个文档创建一个向量,并生成对称距离矩阵.vector_list包含(实际上很长)代表每个文档的向量.这个向量列表的顺序与我的输入文档列表相同,这样我(希望)能够将聚类的结果与相应的文档相匹配.

distances = distance.cdist(vector_list, vector_list, 'euclidean') 
Run Code Online (Sandbox Code Playgroud)

这给出了这样的矩阵,其中对角线是每个文档到自身的距离(总是0)

[0 5 4]
[5 0 4]
[5 4 0]
Run Code Online (Sandbox Code Playgroud)

我将这个距离矩阵提供给scipys的linkage()函数.

clusters = hier.linkage(distances, method='centroid', metric='euclidean')
Run Code Online (Sandbox Code Playgroud)

这返回的东西我不太确定是什么,但是以数据类型numpy.ndarray的形式出现.根据文档,我可以再次将其提供给fcluster以获得"扁平集群".我使用距离矩阵中最大距离的一半作为阈值.

idx = hier.fcluster(clu,0.5*distances.max(), 'distance')
Run Code Online (Sandbox Code Playgroud)

这会返回一个numpy.ndarray,这对我来说再没有多大意义.一个例子是[6 3 1 7 1 8 9 4 5 2]

所以我的问题是:我从链接fcluster函数得到了什么,我怎么能从那里回到我的文档,我首先创建了距离矩阵,看看集群是否有意义?我这样做了吗?

python cluster-analysis scipy

6
推荐指数
1
解决办法
5413
查看次数

选择两列的组合,并计算此组合的出现次数

我有一个有问题的表,每行都是一个问题,所有问题都有一个ask_by和answers_by字段.我想选择"askers"和"answerers"的所有独特组合,并计算这种询问/回答组合发生的次数.

question_tbl:

id      | asked_by | answered_by | session
--------+----------+-------------+---------
1       | AA       | JD          | 2011-2012
2       | JD       | AA          | 2011-2012
9       | AA       | JD          | 2011-2012
12      | AA       | JD          | 2009-2010
Run Code Online (Sandbox Code Playgroud)

我想在会话中返回唯一的组合,以及此组合的计数.

例如2011-2012:

AA, JD, 2
JD, AA, 1
Run Code Online (Sandbox Code Playgroud)

PS:理想情况下我会为django orm写这个,但我似乎无法弄清楚如何为此制定一个合理的谷歌搜索,找到SQL方式是我的目标.

问题解决后的注意事项: 由于这在SQL中非常简单,因此在Djangos ORM中也很容易实现.我会留在这里以供以后记录:

from django.db.models import Count
from myproject.models import Questions

Questions.objects.filter(sesjonid='2011-2012').values('sporsmal_til', 'sporsmal_fra').annotate(count=Count('besvart_av'))
Run Code Online (Sandbox Code Playgroud)

通过测试SQL中的外观,我觉得在(./manage.py shell中)更正:

print str(Questions.objects.filter(sesjonid='2011-2012').values('sporsmal_til', 'sporsmal_fra').annotate(count=Count('sporsmal_til')).query)
Run Code Online (Sandbox Code Playgroud)

这打印出与波希米亚人完全相同的SQL.

mysql sql django-views

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

mysql ×2

python ×2

cluster-analysis ×1

django-views ×1

mamp ×1

scipy ×1

sql ×1