我有一个每日会话表,其中包含user_id和date列.我想每天绘制DAU/MAU(每日活跃用户/每月活跃用户).例如:
Date MAU DAU DAU/MAU
2014-06-01 20,000 5,000 20%
2014-06-02 21,000 4,000 19%
2014-06-03 20,050 3,050 17%
... ... ... ...
Run Code Online (Sandbox Code Playgroud)
计算每日活动数据很容易计算,但计算每月活动数据,例如记录日期30天的用户数量,会导致问题.如果没有每天的左连接,这是如何实现的?
编辑:我正在使用Postgres.
我有一个名为algorithm.py的脚本,我希望能够在脚本中调用Scrapy蜘蛛.文件结构是:
algorithm.py MySpiders/
MySpiders是一个包含几个scrapy项目的文件夹.我想创建方法perform_spider1(),perform_spider2()...我可以在algorithm.py中调用它.
我该如何构建这个方法?
我已经设法使用以下代码调用一个蜘蛛,但是,它不是一种方法,它只适用于一个蜘蛛.我是初学者,需要帮助!
import sys,os.path
sys.path.append('path to spider1/spider1')
from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy.settings import Settings
from scrapy import log, signals
from scrapy.xlib.pydispatch import dispatcher
from spider1.spiders.spider1_spider import Spider1Spider
def stop_reactor():
reactor.stop()
dispatcher.connect(stop_reactor, signal=signals.spider_closed)
spider = RaListSpider()
crawler = Crawler(Settings())
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
log.msg('Running reactor...')
reactor.run() # the script will block here
log.msg('Reactor stopped.')
Run Code Online (Sandbox Code Playgroud) 我的表中有一个长文本列“描述”,有时包含电子邮件地址。我需要提取此电子邮件地址并添加到每行的单独列中。这可以在 MySQL 中实现吗?
我有2张桌子; 一个是用户,另一个是用户操作.我想计算每个用户的操作数,并将其记录在users表中.有~100k用户,以下代码需要6个小时!肯定有更好的办法!
def calculate_invites():
sql_db.execute("SELECT id, uid FROM users")
for row in sql_db:
id = row['id']
uid = row['uid']
sql1 = "SELECT COUNT(1) FROM actions WHERE uid = %s"
sql_db.execute(sql1, uid)
count_actions = sql_db.fetchone()["COUNT(1)"]
sql = "UPDATE users SET count_actions=%s WHERE uid=%s"
sql_db.execute(sql, (count_actions, uid))
Run Code Online (Sandbox Code Playgroud)