一、关于Python操作mysql:
1.导入pyutil模块,这模块有很多常用的功能
from pyutil.program.db import DAL
def get_mysql_dal():
mysql_db_conf = Conf('配置文件的位置')
screenlock_dal = DAL(host=mysql_db_conf.host, port=mysql_db_conf.port, user=mysql_db_conf.user, passwd = "22",name=mysql_db_conf.name)
return mysql_dal
2.之后用execute函数执行sql语句就OK了
mysql_dal.excute(sql).fetchone()
3.fetchone()只取出一个结果,fetchall()把结果全取出来。fetchone的结果就是一个值,可以判断是否为None。fetchall的结果会出来一个列表,列表元素是元组,元组元素取决于你的sql语句:
[(12, 3715231920, 'stay_page', 'click_headline'), (12, 3715231920, 'stats', ''), (14, 2679244993, 'detail', 'page_close_key')]
fetchall的结果不应该和None比较,因为都不会等于空,想要看sql有没查出东西,看 len(excute返回值)==0。
4.这种操作好像不用涉及到关闭数据库的问题
二、关于hive
1.查询方式和sql基本类似,但是记住要先查看hive的分区,查询语句好像一定要加上所在的分区,比如按时间分区的,data=2017-06-06号一个分区,date=2017-06-07这样分。where语句要有所限定where date=20170606这样,要不然查不出来
2.show partitions 查看分区,hive写完sql语句后使用map-reduce执行,挺慢的,有一系列的语句可以多优化。
3.python操作hive数据库:百度吧
三、关于HDFS
1.常用的HDFS命令–一堆,自己找。
查看文件内容 hadoop fs -text /data/.../...../20170531/*|less
关于如何用python操作Hdfs文件,在用python写spark那边再说吧。