0


将hadoop结果(python实现的结果)存入MySQL中

本文档详细介绍了如何在虚拟机中下载并启动 MySQL,创建数据库和表,将 HDFS 结果下载到本地,并使用 Python 脚本将数据插入 MySQL 数据库的整个流程。具体步骤如下:

第一步,下载MySQL。

链接:https://blog.csdn.net/ycsdn10/article/details/121930820

第二步,在虚拟机中启动MySQL,并新建数据库housemanager——>表airhour。

1.启动MySQL,输入下面:

mysql.server start

输入下面语句,并按照提示输入密码。

mysql -uroot -p

2.查看数据库。(注意:最后要加分号)

show databases;

3.新建数据库housemanager

create database housemanager;

4.切换进数据库housemanager中

use housemanager;

5.在数据库housemanager中新建表air_hour。注意:新建表中的字段和数据类型要写成自己的。

CREATE TABLE air_hour (
    id INT AUTO_INCREMENT PRIMARY KEY,
    city VARCHAR(255) NOT NULL,
    hour INT NOT NULL,
    aver_aqi FLOAT NOT NULL
);

(可选)6.查看数据库housemanager新建成功是否

show databases;

(可选)7.查看表air_hour新建成功是否

首先,切换到数据库housemanager中

use housemanager;

然后,查看数据库中的表。

show tables;

8.输出exit退出,或者“ctrl+z”直接退出。

exit

第三步,将HDFS的结果下载到本地。

1.查看HDFS存储的结果,我的存储结果在"/output_airhour/part-00000中。

hdfs dfs -ls /output_airhour/

2.将HDFS文件下载到本地。

前面的命令是我切换到指定下载路径的操作,不是很重要,你可以依据自己的需要更换路径。重要的是——将HDFS文件下载到本地,并查看下载后文件(airhour_result)的结果。

要记住自己的存放文件的路径:/opt/data/airhour_result(等下要用)。输入下面语句:

hdfs dfs -get /output_airhour/part-00000 /opt/data/airhour_result

第四步,编写python代码,设置数据库信息和相关输出路径。

在虚拟机中新建airhour_mysql.py。内容如下。注意以下情况:

①“1.连接到MySQL服务器”——要换成自己的密码和数据库;

②“2.打开本地文件”——本地文件存放的路径:“/opt/data/airhour_result”

③“2.2和2.3”——依据实际情况,换成自己的。2.2中要更换“air_hour (city, hour, aver_aqi`)”这四处,2.3中要更换字段的数据类型。

# -*- coding: utf-8 -*-
import pymysql

# 1.连接到MySQL服务器
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='写成自己的密码',
                             database='housemanager')

try:
    with connection.cursor() as cursor:
        # 2.打开本地文件
        with open('/opt/data/airhour_result', 'r') as file:
            for line in file:
                # 2.1解析每行数据
                city, hour, aver_aqi = line.strip().split('\t')
                # 2.2插入数据到MySQL
                sql = "INSERT INTO `air_hour` (`city`, `hour`, `aver_aqi`) VALUES (%s, %s, %s)"
                # 2.3参数分别为:城市名(字符串),小时(整数),平均AQI(浮点数)
                cursor.execute(sql, (city, int(hour), float(aver_aqi)))
    # 提交更改
    connection.commit()
finally:
    # 关闭连接
    connection.close()

第五步,运行程序并查看结果。

1.运行如下命令,执行airhour_mysql.py文件。

/usr/local/anaconda3/bin/python /opt/pyfile/airhour_mysql.py

如果其中遇到包没有安装,以pymysql包为例,输入以下语句:

pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple

2.在mysql中查看结果。

依据前面的步骤,在mysql中查看结果。首先,再次输入下面语句,进入mysql:

mysql -uroot -p

然后,输入下面语句,查看数据库;

show databases;

然后,输入下面语句,切换进“数据库housemanager”中;

use housemanager;

再然后,查看“数据库housemanager”中“表air_hour”;

show tables;

上面几步的代码运行如下:

最后,输入下面语句,查看“表air_hour”的结果:

select * from air_hour;

如有错误,欢迎在评论区大家指出!

标签: hadoop mysql 大数据

本文转载自: https://blog.csdn.net/m0_70658358/article/details/143372679
版权归原作者 ss程序小白 所有, 如有侵权,请联系我们删除。

“将hadoop结果(python实现的结果)存入MySQL中”的评论:

还没有评论