shell基础语法(持续更新ing)

一、变量

#!/bin/bash
echo "hello shell"

hello shell

# 变量
bianliang='变量'
b=2
echo $b
echo $bianliang;
bianliang_1='变量1'
echo ${
   bianliang_1}
_bianliang='变量2'
echo $_bianliang

2
变量
变量1
变量2

_readonly_='只读变量'
echo $_readonly_
readonly _readonly_
_readonly_='只读属性,不能修改,会报错'

只读变量

script.sh: line 5: readonly: readonly variable

Exited with error status 1

_unset='删除变量'
echo ${
   _unset}
unset _unset
echo $_unset

删除变量

二、字符串

# 字符串
str1='单引号字符串'
echo ${
   str1}
str2="双引号字符串"
echo $str2
str3="双引号字符串\"${
   str1}\""
echo $str3

单引号字符串
双引号字符串
双引号字符串"单引号字符串"

# 字符串拼接
str1="我是"
str2="拼接"
str3="字符串"
echo $str1$str2$str3

# 获取字符串长度
echo ${
   #str3}

# 提取子字符串
str="i love shell"
echo ${
   str:1:5}

# 查找子字符串
# 查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):
echo `expr index "$str" io`

我是拼接字符串
3
love
1

三、数组

stu=(zhangsan lisi wangwu)
echo ${
   stu[0]}
echo ${
   stu[1]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是spark-shell的基础操作: 1. 启动spark-shell:在终端中输入spark-shell即可启动。 2. 加载数据:使用SparkContext的textFile方法加载文本数据,如: val data = sc.textFile("path/to/data") 3. 转换数据:使用Spark的转换操作对数据进行处理,如: val words = data.flatMap(line => line.split(" ")) 4. 操作数据:使用Spark的操作操作对数据进行操作,如: val wordCounts = words.map(word => (word, 1)).reduceByKey(_ + _) 5. 输出数据:使用Spark的输出操作将结果保存到文件或打印到控制台,如: wordCounts.saveAsTextFile("path/to/output") 6. 关闭spark-shell:在终端中输入:quit或使用Ctrl+D即可关闭spark-shell。 希望对您有所帮助,如有需要请随时联系我。 ### 回答2: Spark-shell是基于Scala编写的交互式的Shell,可以在命令行中输入Scala代码,对Spark进行操作。Spark-shell有助于快速调试和学习Spark,因为它允许用户像使用Scala REPL一样来执行和实验Scala代码。在这里,我们将讨论一些Spark-shell的基础操作。 1.打开Spark-shellLinux系统中,打开终端,输入spark-shell,打开Spark-shell。然后,控制台上会显示如下内容: 使用 “:help” 可以获取帮助 和 “:quit” 退出 Spark Shell 2.查看Spark的版本 在Spark-shell中,输入:sc.version,可以查看Spark的版本信息。 3.从文件加载数据 在Spark-shell中读取文件,可以使用sc.textFile(path)函数,该函数将文件加载到RDD中。 4.过滤数据 在Spark-shell中对RDD进行过滤,可以使用filter函数。例如,如果要过滤掉所有不是数字的项,可以使用以下代码: ``` val numbers = sc.textFile("path/to/file").filter(_.matches("\\d+")) ``` 5.操作数据 在Spark-shell中操作数据,通常需要使用map函数。该函数可以将RDD中的每个元素进行转换。例如,将RDD中的每个元素转换为大写,可以使用以下代码: ``` val upperCase = sc.textFile("path/to/file").map(_.toUpperCase()) ``` 6.计算从文件中读取的数字的平均值 在Spark-shell中计算数字的平均值,可以使用以下代码: ``` val numbers = sc.textFile("path/to/file").filter(_.matches("\\d+")) val sum = numbers.map(_.toInt).reduce(_+_) val count = numbers.count() val avg = sum.toDouble / count ``` 7.保存数据 在Spark-shell中,可以使用saveAsTextFile(path)函数把RDD中的内容保存到文件中。例如,以下是一个将结果保存到文件的示例代码: ``` val numbers = sc.textFile("path/to/file").filter(_.matches("\\d+")) val sum = numbers.map(_.toInt).reduce(_+_) val count = numbers.count() val avg = sum.toDouble / count avg.saveAsTextFile("path/to/output") ``` 这是一些Spark-shell的基础操作。掌握这些基础知识之后,您就可以开始编写更复杂的代码了。Spark-shell还有许多其他功能,如使用各种算子操作RDD、调用Spark的API、使用线程和调试Spark Shell等,可以在学习Spark的过程中继续了解和掌握。 ### 回答3: Spark是目前最受欢迎的大数据处理框架之一,它提供了可靠、高效和灵活的数据处理方案。Spark-shell是Spark的一个交互式Shell,它使得开发人员能够以交互式的方式从控制台使用Spark。 1.启动Spark-shell 要使用Spark Shell,首先需要安装Spark,并将其配置为您的系统路径。默认情况下,它会安装在/usr/local/spark目录下。要启动Spark-shell,请输入以下命令: /usr/local/spark/bin/spark-shell 2.创建RDD 通过Spark-shell,可以从HDFS或本地文件系统加载数据,创建RDD并开始处理数据。以下是在Spark-shell中创建RDD的示例: val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) 3.转换RDD Spark提供了各种各样的转换函数,用于转换和转换RDD。以下是一些常用的示例: // 将所有元素加倍 val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) val doubledRdd = rdd.map(x => x * 2) // 过滤偶数 val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) val filteredRdd = rdd.filter(x => x % 2 == 1) // 求和 val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) val sum = rdd.reduce((a, b) => a + b) 4.操作RDD 除了转换,Spark还提供了一系列操作函数,可用于操作RDD。以下是一些常用的示例: // 返回RDD中的元素数 val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) val count = rdd.count() // 返回RDD中的前N个元素 val rdd = sc.parallelize(List(1, 2, 3, 4, 5)) val firstThree = rdd.take(3) // 按键聚合 val rdd = sc.parallelize(List(("a", 1), ("a", 2), ("b", 1))) val groupBy = rdd.groupByKey() 5.关闭Spark-shell 最后,当您完成Spark-shell的使用时,需要关闭Spark-shell。请按Ctrl + D退出Spark-shell命令行。 这些是在Spark-shell中的基本操作,它们可以帮助您开始处理大规模数据。另外,Spark提供了强大的API和生态系统,可帮助您执行更复杂的任务,例如机器学习和图形计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值