From e3feb89840fa36f70de1f64c6fda5dacda087312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=85=A2=E6=85=A2?= <905907915@qq.com> Date: Wed, 13 Nov 2019 10:41:21 +0800 Subject: [PATCH 1/8] gs --- chapter2/2.2对战斗机飞行性能进行分析.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/chapter2/2.2对战斗机飞行性能进行分析.md b/chapter2/2.2对战斗机飞行性能进行分析.md index 5761631..5498fc7 100644 --- a/chapter2/2.2对战斗机飞行性能进行分析.md +++ b/chapter2/2.2对战斗机飞行性能进行分析.md @@ -45,9 +45,11 @@ spark = SparkSession \ `sqlDF = spark.sql("sql语句")` `sql`语句参考处理思路: + 最大飞行速度字段特征:带有分隔符的数字和中文组成,如`1,438.4`千米每小时 -第一步:提取中文前的所有数字,可使用已有函数`regexp_extract`通过正则表达式提取。 +第一步:使用`regexp_extract`通过正则表达式提取中文前的所有数字。 + `regexp_extract`函数:`regexp_extract(str, regexp, [idx]) ` 参数说明: @@ -63,6 +65,7 @@ spark = SparkSession \ `1`表示返回正则表达式中第一个()对应的结果,以此类推 。 示例: + 1)`select regexp_extract('hitdecisiondlist','(i)(.*?)(e)',0) ;` 得到的结果为: @@ -75,14 +78,17 @@ spark = SparkSession \ `i` 本例可使用如下表达式提取: + `(regexp_extract(`最大飞行速度`,'[\d,\.]+',0)` + 需要注意的是当把该表达式加入`spark.sql("sql语句")`时,`\d`和`\.`需要转义(`\\`)。 第二步:使用`replace`函数去除千位分隔符`,`。 -REPLACE函数:( string_replace1 , string_replace2 , string_replace3 ) +`REPLACE`函数:`REPLACE ( string_replace1 , string_replace2 , string_replace3 )` + 参数说明: `string_replace1`:待搜索的字符串表达式。 @@ -91,11 +97,13 @@ REPLACE函数:( string_replace1 , string_replace2 , string_replace3 ) `string_replace3`:替换用的字符串表达式。 本例可使用如下表达式将`,`替换为`''`: + `replace(regexp_extract(`最大飞行速度`,'[\\\d,\\\.]+',0),',','')` 第三步:使用`CAST`函数将字符串转化为`double`用于排序。 本例可使用如下表达式: + `cast(replace(regexp_extract(`最大飞行速度`,'[\\\d,\\\.]+',0),',','') as float)` 第四步:使用降序输出前三。 From b1a66754b4f3f0121e4b63195ac73778101baddc Mon Sep 17 00:00:00 2001 From: xlc <631948983#qq.com> Date: Wed, 13 Nov 2019 11:02:13 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=8C=E5=85=A8?= =?UTF-8?q?=E5=88=86=E5=B8=83=E5=BC=8F=E7=8E=AF=E5=A2=83=E6=90=AD=E5=BB=BA?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E5=90=8D=E7=A7=B0=E5=86=99=E9=94=99=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter1/1.3Spark完全分布式环境搭建.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/chapter1/1.3Spark完全分布式环境搭建.md b/chapter1/1.3Spark完全分布式环境搭建.md index 3908130..f917ab2 100644 --- a/chapter1/1.3Spark完全分布式环境搭建.md +++ b/chapter1/1.3Spark完全分布式环境搭建.md @@ -1,7 +1,4 @@ - ---- - ## 1.3 Spark分布式环境搭建 @@ -109,9 +106,9 @@ export SPARK_MASTER_IP=master节点IP ``` vim /etc/hosts 添加 -192.168.20.100 master-node -192.168.20.101 slave1-node -192.168.20.102 slave2-node +192.168.20.100 master +192.168.20.101 woker1 +192.168.20.102 woker2 ``` **第二步: 配置SSH实现免密登录** From 6956537c00a6e2110b1dd4c134d67b48744730e4 Mon Sep 17 00:00:00 2001 From: xlc <631948983#qq.com> Date: Wed, 13 Nov 2019 11:04:40 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E5=AD=97?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter1/1.3Spark完全分布式环境搭建.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter1/1.3Spark完全分布式环境搭建.md b/chapter1/1.3Spark完全分布式环境搭建.md index f917ab2..3b08383 100644 --- a/chapter1/1.3Spark完全分布式环境搭建.md +++ b/chapter1/1.3Spark完全分布式环境搭建.md @@ -131,7 +131,7 @@ AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成 生成从机的公钥 ``` -四台机器上都执行 +三台机器上都执行 ssh-keygen -t rsa -P "" slave1上执行 scp ~/.ssh/id_rsa.pub 192.168.20.100:~/.ssh/id_rsa.pub.s1 From 3e4b7e0884204df03632092be35701130b1f0360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=85=A2=E6=85=A2?= <905907915@qq.com> Date: Tue, 19 Nov 2019 17:47:47 +0800 Subject: [PATCH 4/8] ds --- chapter2/2.1SparkSQL入门.md | 6 +++--- chapter2/2.2对战斗机飞行性能进行分析.md | 2 +- .../2.3统计各个研发单位研制战斗机占比.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/chapter2/2.1SparkSQL入门.md b/chapter2/2.1SparkSQL入门.md index e1325d2..b1a3d90 100644 --- a/chapter2/2.1SparkSQL入门.md +++ b/chapter2/2.1SparkSQL入门.md @@ -4,13 +4,13 @@ `Spark SQL`是`Spark`用来处理结构化数据的一个模块。`Spark SQL`为了支持结构化数据的处理,它提供了两个编程抽象分别叫做`DataFrame`和`DataSet`。 -### 2.1.1 DataFrame,Dataset和RDD的关系 +### 2.1.1 DataFrames,Datasets和RDD的关系 `RDD` :仅表示数据集,`RDD`没有元数据,也就是说没有字段信息。 -`DataFrame`:由于`RDD`的局限性,`Spark`产生了`DataFrame`,`DataFrame=RDD+Schema`,`Schema`也就是字段信息。`DataFrame`是一种特殊类型的 `Dataset`,`DataSet[Row] = DataFrame`。 +`DataFrames`:由于`RDD`的局限性,`Spark`产生了`DataFrames`,`DataFrame=RDD+Schema`,`Schema`也就是字段信息。`DataFrames`是一种特殊类型的 `Datasets`,`DataSet[Row] = DataFrame`。 -`Dataset`:可以理解为强类型的`DataFrame`,但是`Python`不支持`Dataset API`。 +`Datasets`:可以理解为强类型的`DataFrames`,但是`Python`不支持`Datasets API`。 diff --git a/chapter2/2.2对战斗机飞行性能进行分析.md b/chapter2/2.2对战斗机飞行性能进行分析.md index 5498fc7..807b729 100644 --- a/chapter2/2.2对战斗机飞行性能进行分析.md +++ b/chapter2/2.2对战斗机飞行性能进行分析.md @@ -2,7 +2,7 @@ ### 2.2.1 数据源 -本教程提供一份全球战斗机相关指标参数的`json`数据(见第二章节`data`目录)。 +本教程提供一份全球战斗机相关指标参数的`json`数据。 其中一条数据如下: diff --git a/chapter2/2.3统计各个研发单位研制战斗机占比.md b/chapter2/2.3统计各个研发单位研制战斗机占比.md index 5e2c277..2849441 100644 --- a/chapter2/2.3统计各个研发单位研制战斗机占比.md +++ b/chapter2/2.3统计各个研发单位研制战斗机占比.md @@ -2,7 +2,7 @@ ### 2.3.1 数据源 -本教程提供一份全球战斗机相关指标参数的`json`数据(见第二章节`data`目录)。 +本教程提供一份全球战斗机相关指标参数的`json`数据。 其中一条数据如下: @@ -12,7 +12,7 @@ ### 2.3.2 统计指标说明 -统计出全球各研发单位研制的战斗机在全球所有战斗机中的占比(以百分号显示,并保留两位小数,如:`0.12%`),原始数据中战斗机为空的不计入计算。 +统计出全球各研发单位研制的战斗机在全球所有战斗机中的占比以百分号显示,并保留两位小数,如:`0.12%`),原始数据中战斗机为空的不计入计算。 ### 2.3.3 结果数据保存 From a48d8a2156f32b9ba8357c77cceebea55cc9a857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=85=A2=E6=85=A2?= <905907915@qq.com> Date: Tue, 19 Nov 2019 17:56:38 +0800 Subject: [PATCH 5/8] gs --- chapter2/2.1SparkSQL入门.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapter2/2.1SparkSQL入门.md b/chapter2/2.1SparkSQL入门.md index b1a3d90..7224072 100644 --- a/chapter2/2.1SparkSQL入门.md +++ b/chapter2/2.1SparkSQL入门.md @@ -1,7 +1,7 @@ ## 2.1 Spark SQL入门 -`Spark SQL`是`Spark`用来处理结构化数据的一个模块。`Spark SQL`为了支持结构化数据的处理,它提供了两个编程抽象分别叫做`DataFrame`和`DataSet`。 +`Spark SQL`是`Spark`用来处理结构化数据的一个模块。`Spark SQL`为了支持结构化数据的处理,它提供了两个编程抽象分别叫做`DataFrames`和`DataSets`。 ### 2.1.1 DataFrames,Datasets和RDD的关系 @@ -10,7 +10,7 @@ `DataFrames`:由于`RDD`的局限性,`Spark`产生了`DataFrames`,`DataFrame=RDD+Schema`,`Schema`也就是字段信息。`DataFrames`是一种特殊类型的 `Datasets`,`DataSet[Row] = DataFrame`。 -`Datasets`:可以理解为强类型的`DataFrames`,但是`Python`不支持`Datasets API`。 +`Datasets`:可以理解为强类型的`DataFrames`,也就是说每一个`record`存储的是一个强类型值而不是一个`Row`。但是`Python`不支持`Datasets API`。 From d9612fefdd85aeb06281718c0f18642f92ca5f89 Mon Sep 17 00:00:00 2001 From: xlc <631948983#qq.com> Date: Thu, 21 Nov 2019 09:30:21 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter1/1.3Spark完全分布式环境搭建.md | 2 -- chapter2/2.2对战斗机飞行性能进行分析.md | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter1/1.3Spark完全分布式环境搭建.md b/chapter1/1.3Spark完全分布式环境搭建.md index 3b08383..5256066 100644 --- a/chapter1/1.3Spark完全分布式环境搭建.md +++ b/chapter1/1.3Spark完全分布式环境搭建.md @@ -126,8 +126,6 @@ AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成 重启`ssh`。 - - 生成从机的公钥 ``` diff --git a/chapter2/2.2对战斗机飞行性能进行分析.md b/chapter2/2.2对战斗机飞行性能进行分析.md index 807b729..878c192 100644 --- a/chapter2/2.2对战斗机飞行性能进行分析.md +++ b/chapter2/2.2对战斗机飞行性能进行分析.md @@ -104,7 +104,9 @@ spark = SparkSession \ 本例可使用如下表达式: -`cast(replace(regexp_extract(`最大飞行速度`,'[\\\d,\\\.]+',0),',','') as float)` +``` +cast(replace(regexp_extract(`最大飞行速度`,'[\\\d,\\\.]+',0),',','') as float) +``` 第四步:使用降序输出前三。 From 9b8b6a3712ce681f41f7a17719db8c8d74eb5cd8 Mon Sep 17 00:00:00 2001 From: xlc <631948983#qq.com> Date: Thu, 21 Nov 2019 10:58:48 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E4=B8=8D=E6=AD=A3=E7=A1=AE=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chapter2/2.2对战斗机飞行性能进行分析.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/chapter2/2.2对战斗机飞行性能进行分析.md b/chapter2/2.2对战斗机飞行性能进行分析.md index 878c192..895d100 100644 --- a/chapter2/2.2对战斗机飞行性能进行分析.md +++ b/chapter2/2.2对战斗机飞行性能进行分析.md @@ -127,13 +127,3 @@ cast(replace(regexp_extract(`最大飞行速度`,'[\\\d,\\\.]+',0),',','') as fl