Datax学习

DataX学习

DataX3.0概览

DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。学习可见官网资料(https://github.com/alibaba/DataX)。

设计理念:

为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。

DataX框架设计

image.png

  • Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
  • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
  • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

DataX插件体系

image.png image.png

DataX核心架构

datax_arch

DataX六大核心优势

可靠的数据质量监控

丰富的数据转换功能

精准的速度控制

强劲的同步性能

健壮的容错机制

极简的使用体验

DataX与sqoop对比

功能DataXSqoop
运行模式单进程多线程MR
分布式不支持,可以通过调度系统规避支持
流控有流控功能需要定制
统计信息已有一些统计,上报需定制没有,分布式的数据收集不方便
数据校验在core部分有校验功能没有,分布式的数据收集不方便
监控需要定制需要定制

DataX部署

1.下载datax jar包

地址:(https://github.com/alibaba/DataX?tab=readme-ov-file)

2.上传jar包 解压并配置环境变量

tar -zxvf datax.tar.gz 
#添加环境变量
DATAX_HOME=/usr/local/soft/datax
export PATH=$DATAX_HOME/bin:$PATH
#生效
source /etc/profile

3.自检

#给bin目录下的datax.py赋予执行权限
chmod +x datax.py 
#查看是否成功安装
python ./bin/datax.py ./job/job.json

DataX使用

在bigdata30目录下创建datax_jsons文件夹用于存储脚本

mkdir datax_jsons

小例子:创建stream2stream.json

{
    "job": {
        "setting": {
            "speed": {
                "channel":1
            },
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {
                "reader": {
                    "name": "streamreader",
                    "parameter": {
                        "column" : [
                            {
                                "value": "我是",
                                "type": "string"
                            },
                            {
                                "value": "大",
                                "type": "string"
                            },
                            {
                                "value": "帅",
                                "type": "string"
                            },
                            {
                                "value": "哥",
                                "type": "string"
                            },
                            {
                                "value": "哈哈哈",
                                "type": "string"
                            }
                        ],
                        "sliceRecordCount": 10 // 打印次数
                    }
                },
                "writer": {
                    "name": "streamwriter",
                    "parameter": {
                        "print": true,   //是否打印
                        "encoding": "UTF-8"
                    }
                }
            }
        ]
    }
}

运行 datax.py stream2stream.json

结果:

image.png

DataX配置文件格式

编写json文件的步骤:

1、根据你确定的reader和writer来使用命令生成对应的模板

2、去github上找到对应参数值的写法,主要是看参数是否是必须项,有什么影响

如果你不知道怎么写模版 可以去官网查看 或者使用如下命名查看DataX配置文件模板。

datax.py -r mysqlreader -w hdfswriter #以mysql-->hdfs为例

生成模版:

解读:json最外层是一个job,job包含setting和content两部分,其中setting用于对整个job进行配置,content用户配置数据源和目的地。

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader", 
                    "parameter": {
                        "column": [], 
                        "connection": [
                            {
                                "jdbcUrl": [], 
                                "table": []
                            }
                        ], 
                        "password": "", 
                        "username": "", 
                        "where": ""
                    }
                }, 
                "writer": {
                    "name": "hdfswriter", 
                    "parameter": {
                        "column": [], 
                        "compress": "", 
                        "defaultFS": "", 
                        "fieldDelimiter": "", 
                        "fileName": "", 
                        "fileType": "", 
                        "path": "", 
                        "writeMode": ""
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": ""
            }
        }
    }
}

然后,可以根据官网给出的样例进行更改:

image.png

在参数说明中还能了解哪些参数必选和默认值等内容:

image.png

类型转换

image.png

mysql2hdfs

更改模版:

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader", 
                    "parameter": {
                        "column": [
                            "CId",
                            "Cname",
                            "Tid"
                        ], 
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://master:3306/Y1?useUnicode=true&characterEncoding=UTF-8&useSSL=false"], 
                                "table": ["Course"]
                            }
                        ], 
                        "password": "123456", 
                        "username": "root" 
                        // where不是必选项 直接删掉
                    }
                }, 
                "writer": {
                    "name": "hdfswriter", 
                    "parameter": {
                        "column": [
                            {
                                "name": "CId",
                                "type": "String"
                            },
                            {
                                "name": "Cname",
                                "type": "String"
                            },
                            {
                                "name": "Tid",
                                "type": "String"
                            }
                        ],  
                        //"compress": "NONE",      // 是否压缩   不是必选项删掉
                        "defaultFS": "hdfs://master:9000", 
                        "fieldDelimiter": ",", // 列分隔符
                        "fileName": "Course", 
                        "fileType": "text",   // 文件类型
                        "path": "/bigdata30/dataxout1", 
                        "writeMode": "append"   //hdfswriter写入前数据清理处理模式
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

运行报错 : 路径不存在 说明要提前创建路径

hdfs dfs -mkdir /bigdata30/dataxout1

运行:

datax.py mysql2hdfs.json

成功 hdfs出现文件:

image.png

查看文件内容:

image.png

mysql2mysql

场景:将Y1数据库中的Course表同步到datax1数据库中

生成 MySQL 到 MySQL 同步的模板:

datax.py -r mysqlreader -w mysqlwriter

查看官网mysqlwrite模版,写出自己的模版

在datax数据库中新建Course表

create table if not exists datax1.Course(
    CId varchar(10),
    Cname nvarchar(10),
    TId varchar(10)
)
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader", 
                    "parameter": {
                        "column": [
                            "CId",
                            "Cname",
                            "Tid"
                        ], 
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://master:3306/Y1?useUnicode=true&characterEncoding=UTF-8&useSSL=false"], 
                                "table": ["Course"]
                            }
                        ], 
                        "password": "123456", 
                        "username": "root" 
                    }
                }, 
                "writer": {
                    "name": "mysqlwriter", 
                    "parameter": {
                        "column": [
                            "CId",
                            "Cname",
                            "Tid"
                        ], 
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://master:3306/datax1?useUnicode=true&characterEncoding=UTF-8&useSSL=false", 
                                "table": ["Course"]
                            }
                        ], 
                        "password": "123456", 
                        "username": "root", 
                        "writeMode": "insert"
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

运行

datax.py mysql2mysql.json 

结果 在datax数据库中的Course表中出现数据:

image.png

mysql2hive

场景:

将mysql中的Studnet表数据同步到hive中的Students表中

查看模版

datax.py -r mysqlreader -w hdfswriter

在hive中建表

create table bigdata30.Students(
    Sid STRING,
    Sname STRING,
    Sage DATE,
    Ssex STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

编写配置文件mysql2hive.json

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader", 
                    "parameter": {
                        "column": [
                            "SId",
                            "Sname",
                            "Sage",
                            "Ssex"
                
                        ], 
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://master:3306/Y1?useUnicode=true&characterEncoding=UTF-8&useSSL=false"], 
                                "table": ["Student"]
                            }
                        ], 
                        "password": "123456", 
                        "username": "root" 
                    }
                }, 
                "writer": {
                    "name": "hdfswriter", 
                    "parameter": {
                        "column": [
                            {
                                "name": "SId",
                                "type": "string"
                            },
                            {
                                "name": "Sname",
                                "type": "string"
                            },
                            {
                                "name": "Sage",
                                "type": "Date"
                            },
                            {
                                "name": "Ssex",
                                "type": "string"
                            }
                        ], 
                        "defaultFS": "hdfs://master:9000", 
                        "fieldDelimiter": ",",
                        "fileName": "students", 
                        "fileType": "text",  
                        "path": "/user/hive/warehouse/bigdata30.db/students", 
                        "writeMode": "append"  
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

运行

datax.py mysql2hive.json

hive students表中出现数据

image.png

hdfs2mysql == hive2mysql

场景:

将hive中的t_movie1表中的数据传入mysql中

查看模版

datax.py -r hdfsreader -w mysqlwriter

根据官方文档编写配置文件

DataX 内部类型Hive表 数据类型
LongTINYINT,SMALLINT,INT,BIGINT
DoubleFLOAT,DOUBLE
StringString,CHAR,VARCHAR,STRUCT,MAP,ARRAY,UNION,BINARY
BooleanBOOLEAN
DateDate,TIMESTAMP

先在mysq建一张输出表

create table if not exists datax1.datax_out1(
    id bigint,
    name varchar(100),
    types varchar(100),
    shengfen varchar(10)
)CHARSET = utf8 COLLATE utf8_general_ci;

编辑配置文件

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "hdfsreader", 
                    "parameter": {
                        "column": [
                            {
                                "index": 0,
                                "type": "long"
                               },
                               {
                                "index": 1,
                                "type": "string"
                               },                           
                               {
                                "index": 2,
                                "type": "string"
                               },                           
                               {
                                "type": "string",    // 给一个定值
                                "value":"学生"
                               }
                        ], 
                        "defaultFS": "hdfs://master:9000", 
                        "encoding": "UTF-8", 
                        "fieldDelimiter": ",", 
                        "fileType": "text", 
                        "path": "/user/hive/warehouse/bigdata30.db/t_movie1/*"
                    }
                }, 
                "writer": {
                    "name": "mysqlwriter", 
                    "parameter": {
                        "column": [
                            "id",
                            "name",
                            "types",
                            "shengfen"
                        ], 
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://master:3306/datax1?useUnicode=true&characterEncoding=UTF-8&useSSL=false", 
                                "table": ["datax_out1"]
                            }
                        ], 
                        "password": "123456", 
                        "username": "root", 
                        "writeMode": "insert"
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

运行 mysql中的datax_out1表中出现数据

image.png

mysql2hbase

场景

将mysql中的datax_out1表数据写入hbase中的datax_tb1中

查看模版

datax.py -r mysqlreader -w hbase20xsqlwriter  #hbase的版本是2.2.7

HBase20xsqlwriter实现了向hbase中的SQL表(phoenix)批量导入数据的功能。Phoenix因为对rowkey做了数据编码,所以,直接使用HBaseAPI进行写入会面临手工数据转换的问题,麻烦且易错。本插件提供了SQL方式直接向Phoenix表写入数据。

  • 仅支持通过Phoenix QeuryServer导入数据,因此您Phoenix必须启动QueryServer服务才能使用本插件

所以我们不使用这种,使用Hbase11XWriter,根据官方文档挑选出必选的参数

官方文档:hbase11xwriter/doc/hbase11xwriter.md

在hbase中新建表

create 'datax_tb1','info'

编写配置文件 mysql2hbase.json

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader", 
                    "parameter": {
                        "column": [
                            "id",
                            "name",
                            "types",
                            "shengfen"
                
                        ], 
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://master:3306/datax1?useUnicode=true&characterEncoding=UTF-8&useSSL=false"], 
                                "table": ["datax_out1"]
                            }
                        ], 
                        "password": "123456", 
                        "username": "root" 
                    }
                },
                "writer": {
                    "name": "hbase11xwriter",
                    "parameter": {
                      "hbaseConfig": {
                        "hbase.zookeeper.quorum": "master:2181,node1:2181,node2:2181"
                      },
                      "table": "datax_tb1",
                      "mode": "normal",
                      "rowkeyColumn": [
                          {
                            "index":0,
                            "type":"long"
                          }
                      ],
                      "column": [
                        {
                          "index":1,
                          "name": "info:name",
                          "type": "string"
                        },
                        {
                          "index":2,
                          "name": "info:types",
                          "type": "string"
                        },
                        {
                          "index":3,
                          "name": "info:shengfen",
                          "type": "string"
                        }
                      ],
                      "encoding": "utf-8"
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

运行 扫描datax_tb1表:

image.png

hbase2mysql

场景

将hbase中的datax_tb1表数据写入mysql中的datax_out2中

查看模版

datax.py -r hbase11xreader -w mysqlwriter

官方文档:hbase11xreader/doc/hbase11xreader.md

先在mysql中建表:

create table if not exists datax1.datax_out2(
    id bigint,
    name varchar(100),
    types varchar(100),
    shengfen varchar(10)
)CHARSET = utf8 COLLATE utf8_general_ci;

编写配置文件 hbase2mysql.json

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "hbase11xreader", 
                    "parameter": {
                        "column": [
                            {
                                "name": "rowkey",
                                "type": "long"
                            },
                            {
                                "name": "info: name",
                                "type": "string"
                            },
                            {
                                "name": "info: types",
                                "type": "string"
                            },
                            {
                                "name": "info: shengfen",
                                "type": "string"
                            }
                        ], 
                        "encoding": "utf-8", 
                        "hbaseConfig": {"hbase.zookeeper.quorum": "master:2181,node1:2181,node2:2181"}, 
                        "mode": "normal",                       
                        "table": "datax_tb1"
                    }
                }, 
                "writer": {
                    "name": "mysqlwriter", 
                    "parameter": {
                        "column": [
                            "Id",
                            "name",
                            "types",
                            "shengfen"
                        ], 
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://master:3306/datax1?useUnicode=true&characterEncoding=UTF-8&useSSL=false", 
                                "table": ["datax_out2"]
                            }
                        ], 
                        "password": "123456", 
                        "username": "root", 
                        "writeMode": "insert"
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

运行 mysql中的datax_out2中出现数据:

image.png

mysql增量同步到hive

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "root",
                        "password": "123456",
                        "column": [
                            "id",
                            "name",
                            "age",
                            "gender",
                            "clazz",
                            "last_mod"
                        ],
                        "splitPk": "age",
                        "where": "id > 9",   //条件筛选
                        "connection": [
                            {
                                "table": [
                                    "student"
                                ],
                                "jdbcUrl": [
                                    "jdbc:mysql://master:3306/datax1"
                                ]
                            }
                        ]
                    }
                },
                "writer": {
                    "name": "hdfswriter",
                    "parameter": {
                        "defaultFS": "hdfs://master01:9000",
                        "fileType": "text",
                        "path": "/user/hive/warehouse/bigdata30.db/dataxstudent",
                        "fileName": "student",
                        "column": [
                            {
                                "name": "id",
                                "type": "bigint"
                            },
                            {
                                "name": "name",
                                "type": "string"
                            },
                            {
                                "name": "age",
                                "type": "INT"
                            },
                            {
                                "name": "gender",
                                "type": "string"
                            },
                            {
                                "name": "clazz",
                                "type": "string"
                            },
                            {
                                "name": "last_mod",
                                "type": "string"
                            }
                        ],
                        "writeMode": "append",   // 增量导入   全量导入  truncate
                        "fieldDelimiter": ","
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 6
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/750931.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL之可扩展性(六)

可扩展性 向外扩展 12.重新均衡分片数据 如有必要,可以通过在分片间移动数据来达到负载均衡。举个例子,许多读者可能听一些大型图片分享网站或流行社区网站的开发者提到过用于分片间移动用户数据的工具。在分片间移动数据的好处很明显。例如&#xff…

【JavaScript】流程控制和函数

目录 一、分支语句 1、if语句: 2、switch语句: 二、循环语句 1、while循环语句 2、for循环语句 三、函数声明 1、function 函数名(形参列表){ 函数体 } 2、var 函数名function(形参列表){函数体} 一、分支语句 1、if语句: if(表达式){ }else …

高考志愿不知道怎么填?教你1招,用这款AI工具,立省4位数

高中的岁月,就像一本厚厚的书,我们一页页翻过,现在,终于翻到了最后一页。但这不是结束,这是新的开始,是人生的新篇章。 高考落幕,学子们在短暂的放松后,又迎来了紧张的志愿填报。 “…

达梦数据库的系统视图v$locked_object

达梦数据库的系统视图v$locked_object 在达梦数据库(Dameng Database)中,V$LOCKED_OBJECT 视图提供了与数据库中被锁定对象相关的信息。这通常用于监控和诊断数据库中的锁定问题,帮助管理员了解哪些对象被锁定了,以及…

如何在Windows 11上设置默认麦克风和相机?这里有详细步骤

如果你的Windows 11计算机上连接了多个麦克风或网络摄像头,并且希望自动使用特定设备,而不必每次都在设置中乱动,则必须将首选设备设置为默认设备。我们将向你展示如何做到这一点。 如何在Windows 11上更改默认麦克风 有两种方法可以将麦克…

工商银行:低息差下的挣扎

时隔四年,市值再度超越贵州茅台成为A股“股王”。 今天要说的就是“宇宙行”——中国工商银行 虽然茅台的信仰开始崩塌,但各大银行股巨头们今年也不好过。2024年一季度六大行业绩集体受挫,息差普遍收窄超过20个基点。其中,包括工…

【Web3】Web3.js 启动!并解决Web3 is not a constructor报错

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 本节教大家如何启动Web3.js 目录 Web3 启动! 于是很愉快的报错 创建实例! 出来了 Web3:模块…

代码随想录——跳跃游戏Ⅱ(Leetcode 45)

题目链接 贪心 class Solution {public int jump(int[] nums) {if(nums.length 1){return 0;}int count 0;// 当前覆盖最远距离下标int curDistance 0;// 下一步覆盖距离最远下标int nextDistance 0;for(int i 0; i < nums.length; i){nextDistance Math.max(nums[…

指针并不是用来存储数据的,而是用来存储数据在内存中地址(内存操作/函数指针/指针函数)

推荐&#xff1a;1、4、5号书籍 1. 基本概念 首先&#xff0c;让小明了解指针的基本概念&#xff1a; 指针的定义&#xff1a;指针是一个变量&#xff0c;它存储的是另一个变量的地址。指针的声明&#xff1a;例如&#xff0c;int *p表示一个指向整数的指针变量p。 2. 形象…

Mac 微信能上网但浏览器打不开网页

文章目录 推荐 DNSMac 设置 DNS 推荐 DNS 名称首选 DNS备用 DNSGoogle8.8.8.88.8.4.4114 DNS114.114.114.114114.114.115.115阿里223.5.5.5百度180.76.76.76腾讯119.29.29.29电信101.226.4.6联通123.125.81.6移动101.226.4.6铁通101.226.4.68福建电信218.85.152.99218.85.157.…

基于elastic stack的docker-compose部署的ELK与LDAP集成

说明&#xff1a; ldap信息配置到es配置文件上&#xff0c;然后kibana读取es的配置信息 用户与角色的关系通过role_mapping.yml文件配置获取 角色与权限的关系通过elastic stack提供的DevTools或API进行维护 一、前置条件&#xff1a; 1.1 es已开启xpack&#xff08;已开启…

QQ等级评估源码+软件

今天&#xff0c;我将和大家探讨一个与直播、撸礼物相关的主题&#xff0c;它涉及到的是一种特殊的软件及其源码——QQ等级评估工具。在我们的生活中&#xff0c;直播已经成为了一种越来越流行的娱乐方式。不论是音乐会、电子竞技&#xff0c;还是日常生活分享&#xff0c;你都…

猫狗识别—静态图像识别

猫狗识别—静态图像识别 1. 导入必要的库:2. 设置数据目录和模型路径:3. 定义图像转换4. 使用GPU5. 加载没有预训练权重的ResNet模型6. 创建Tkinter窗口:7.定义选择图片的函数:8.定义预测图片的函数:9.退出程序的函数:10.创建按钮:11.运行Tkinter事件循环:12. 完整代码&#xf…

研究发现GPT-4o等较新的多模态AI模型的安全机制有不足之处

在 ChatGPT 和类似的生成式人工智能模型推出后&#xff0c;很多人都在强调安全问题&#xff0c;政府也参与其中&#xff0c;OpenAI 甚至成立了一个超级协调小组&#xff0c;以阻止未来的人工智能失控&#xff0c;但由于对人工智能安全的发展方向存在分歧&#xff0c;该小组于今…

Zed+AD9361项目独立移植到windows中

文件分享 链接&#xff1a;https://pan.baidu.com/s/17wB_9xVWjO7HhxNvmmZyuA 提取码&#xff1a;94zz 首先下载HDL和NO-OS项目 git clone --recursive https://github.com/analogdevicesinc/hdl git clone --recursive https://github.com/analogdevicesinc/no-OS下载…

Grafana+Prometheus构建强大的监控系统-保姆级教程[监控linux、oracle]

什么是Grafana&#xff1f; Grafana是一个开源软件&#xff0c;拥有丰富的指标仪表盘和图形编辑器&#xff0c;适用Prometheus、Graphite、Elasticsearch、OpenTSDB、InfluxDB、redis。。。简单点说就是一套开源WEB可视化平台。通过对数据库数据二次提取&#xff0c;做出好看的…

MySQL集群高可用架构之双主双活+keepalived

该教程再linux系统下 从部署单台mysql -->到部署两台双主mysql-->再到安装keepalived-->整体测试 从而实现mysql双主双活高可用的目标。 改文档由本人亲自部署搭建一步一步编写而来&#xff0c;实属不易&#xff0c;如对您有所帮助&#xff0c;请收藏点个赞&#x…

如何在ArcGIS Pro中提取行政区划

我们在《2024版有审图号的SHP行政区划》一文中&#xff0c;为你分享过全国省市县级的行政区划。 现在再为你分享一下&#xff0c;如何在ArcGIS Pro中提取目标范围行政区划的方法&#xff0c;你还可在以文末查看领取该行政区划数据的方法。 直接选择 在菜单栏上点击一下选择下…

Python代码升级工具库之pyupgrade使用详解

概要 在Python开发过程中,随着语言版本的更新和改进,代码也需要不断地进行升级和优化,以利用新版本提供的特性和性能提升。pyupgrade 库是一个自动化工具,它能够帮助开发者将代码升级到指定的Python版本,自动应用新的语法和特性,简化了代码维护工作。本文将详细介绍 pyu…

【深度学习】机器学习基础

机器学习就是让机器具备找一个函数的能力 带有未知的参数的函数称为模型 通常一个模型的修改&#xff0c;往往来自于对这个问题的理解&#xff0c;即领域知识。 损失函数 平均绝对误差&#xff08;Mean Absolute Error&#xff0c;MAE&#xff09; 均方误差&#xff08;Mea…