zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Spark修炼之道(基础篇)——Linux大数据开发基础:第十三节:Shell编程入门(五)

2023-09-14 09:00:24 时间
root@sparkslave02:~/ShellLearning/Chapter13# chmod a+x whileLoop.sh root@sparkslave02:~/ShellLearning/Chapter13# ./whileLoop.sh
root@sparkslave02:~/ShellLearning/Chapter13# chmod a+x flagWhileLoop.sh root@sparkslave02:~/ShellLearning/Chapter13# ./flagWhileLoop.sh Please input the num (1~~10): Yes ,you are right !!

## 2. if条件判断##
参考:http://blog.chinaunix.net/uid-20735106-id-3434959.html
shell 脚本中的if条件判断功能十分强大,但使用也异常复杂,其语法格式:

if 条件

 Command

 Command

#if条件判断的结束,用反拼表示

fi 

最常用的判断为:判断字符串、判断数字、判断文件及逻辑判断等

(1)判断字符串
1.if [ str1=str2 ];then fi ----当两个字符串相同时返回真

2.if [ str1!=str2 ];then fi ----当两个字符串不相等时返回真

3.if [ -n str1 ];then fi ----当字符串的长度大于0时返回真 (判断变量是否有值)

4.if [ -z str1 ];then fi ----当字符串的长度为0时返回真

7. -b file --文件存在且为块设备文件 8. -s file --文件大小为非0为真,可以判断文件是否为空 9. -e file --如果文件存在为真

使用示例:

root@sparkslave02:~/ShellLearning/Chapter13# vim if03.sh

root@sparkslave02:~/ShellLearning/Chapter13# chmod a+x if03.sh 

#判断文件是否存在

if [ -f if03.sh ]

 echo "if03.sh exists!!"

#判断目录是否存在

if [ -d ../Chapter13 ]

 echo "directory Chapter13 exists!!"

root@sparkslave02:~/ShellLearning/Chapter13# ./if03.sh 

if03.sh exists!!

directory Chapter13 exists!!


root@sparkslave02:~/ShellLearning/Chapter13# vim if04.sh

#判断if04.sh文件与目录Chapter13是否同时存在,同时存在则为真

if [ -f if04.sh -a -d ../Chapter13 ]

 echo "file if04.sh and directory Chapter13 both exists!!!"

root@sparkslave02:~/ShellLearning/Chapter13# chmod a+x if04.sh 

root@sparkslave02:~/ShellLearning/Chapter13# ./if04.sh 

file if04.sh and directory Chapter13 both exists!!!


root@sparkslave02:~/ShellLearning/Chapter13# chmod a+x if05.sh root@sparkslave02:~/ShellLearning/Chapter13# ./if05.sh i is great than or equal 6 (6)if [] then elif then else fi的用法

多种判断,看示例代码就能明白:

root@sparkslave02:~/ShellLearning/Chapter13# cp if05.sh if06.sh

root@sparkslave02:~/ShellLearning/Chapter13# vim if06.sh

if [ $i -le 6 ]

 echo "i is less than 6"

elif [ $i -eq 7 ]

 echo "i equal 7"

 echo "i is great than 7"

root@sparkslave02:~/ShellLearning/Chapter13# ./if06.sh 

i equal 7

## 3. until循环控制结构##

语法格式:

until condition

 command

 done

使用示例:


root@sparkslave02:~/ShellLearning/Chapter13# chmod a+x until01.sh root@sparkslave02:~/ShellLearning/Chapter13# ./until01.sh i=3
# Apache spark系列技术直播# 第五讲【 Spark RDD编程入门 】 主讲人:王道远(健身) 阿里巴巴计算平台EMR技术专家 直播时间:2018.12.13(本周四)19:00 - 20:00 内容提要:本次讲座主要涵盖Spark RDD编程入门基础,包括: Spark、RDD简介 RDD API简介 打包与spark-submit 性能分析与调优基础 ppt链接:https://yq.
# Apache Spark系列技术直播# 第五讲【 Spark RDD编程入门 】 内容提要:本次讲座主要涵盖Spark RDD编程入门基础,包括:1. Spark、RDD简介 2. RDD API简介 3. 打包与spark-submit 4. 性能分析与调优基础主讲人:王道远(健身) 阿里巴巴计算平台EMR技术专家直播时间:2018.
SparkStream在处理流数据时,按时间间隔把数据分成小批,在一个小批中利用RDD 的函数完成各种运算。如果要在各小批之间共享数据,或者保存到每批次的数据到一个集中变量中,就要用到mapWithState函数,在整个流计算任务中维护了一个key-value State对象(应该也是一个RDD),根据本批次的任务更改State。