from bq

本文详细介绍了一种使用SQL查询和Python脚本来处理大规模玩家数据的方法。通过具体案例,展示了如何从数据库中提取特定时间段内的玩家充值状态,并利用Python进行数据清洗与转换,最终将处理后的数据导出为CSV文件,便于进一步的数据分析与可视化。
SELECT
    player_id,
    TO_HEX(MD5(CONCAT('f4ju8', CAST(player_id AS STRING)))) AS md5_str,
    CAST(CONCAT('0x', SUBSTR(TO_HEX(MD5(CONCAT('fme7q', CAST(player_id AS STRING)))),0, 8)) AS INT64) AS hash_int,
    MOD(CAST(CONCAT('0x', SUBSTR(TO_HEX(MD5(CONCAT('fme7q', CAST(player_id AS STRING)))),0, 8)) AS INT64), 100) AS bucket_id
  FROM
    mafia1.create_player
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Oct 31 15:46:08 2019

@author: lg
"""

import pandas as pd
import datetime
from dateutil.parser import parse
import time 

t1=time.time()
def now_date():
    now=datetime.datetime.now()
    nowd=now.strftime('%Y-%m-%d')
    return nowd

def before_time(dt,n):
    dt1=parse(dt)
    future_time = dt1- datetime.timedelta(days=n)
    fu = future_time.strftime('%Y-%m-%d')
    return fu


def train_data(start,end):
    query="""
    SELECT * FROM `heidao-market.mafia1.charge_status_2` WHERE DATE(timestamp) >= '{}'   and 
    
    DATE(timestamp) <='{}'
    
    order by timestamp desc
    
    limit 60000
    """
#    and DATE(action_time) ='{}'
    sql=query.format(start,end)

    dfg= pd.read_gbq(sql, dialect='standard')

    return dfg


end=now_date()
start= before_time(end,2)


df=train_data(start,end)
#df= pd.read_gbq(sql, dialect='standard')

#import pandas as pd
#
#df=pd.read_csv('data.csv')
c1= ['id',   'player_id','giftbag_id', 'status','created_at']

c2=['seq_id','player_id','giftbag_id', 'status', 'timestamp']

df1=df[c2]

df2=df1.values

df3=pd.DataFrame(df2,columns=c1)

df3.to_csv('data.csv',index=False)

print(time.time() -t1)
df = pd.read_csv(path)
### BQ76952 IIC Communication Code Example For the BQ76952 chip, establishing a reliable IIC (Inter-Integrated Circuit) communication is crucial for configuring and monitoring battery management parameters. Below is an example of how to implement basic read and write operations using Python with an IIC library such as `smbus` or similar libraries depending on your platform. #### Basic Read Operation from BQ76952 Register To perform a simple register read operation: ```python import smbus def bq76952_read_register(bus_number, device_address, register): bus = smbus.SMBus(bus_number) try: data = bus.read_byte_data(device_address, register) return data except IOError: print("Error accessing BQ76952 at address {0:#x}".format(device_address)) return None # Example usage device_address = 0x0b # Typical IIC address for BQ76952 [^1] register_to_read = 0x00 # Replace this value based on which register you want to access read_value = bq76952_read_register(1, device_address, register_to_read) if read_value is not None: print(f"Register Value: {read_value}") ``` #### Writing Data into Specific Registers Writing commands or configuration settings involves sending bytes directly to specified registers within the BQ76952 IC. ```python def bq76952_write_register(bus_number, device_address, register, value): bus = smbus.SMBus(bus_number) try: bus.write_byte_data(device_address, register, value & 0xFF) except IOError: print("Failed writing to BQ76952") # Example Usage write_value = 0xAA # Hypothetical command byte; adjust according to datasheet specifications [^1] target_register = 0x0D # REGIN control register as per documentation bq76952_write_register(1, device_address, target_register, write_value) ``` These examples provide foundational methods for interacting over IIC with the BQ76952 device. For more complex configurations like setting up TS2 functionality or manipulating specific registers (`REGIN`, `BREG`, etc.), refer to detailed descriptions provided by Texas Instruments' official documents.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值