
# Spark client CLI介绍
Spark CLI详细的使用方法参考官方网站的描述：<https://archive.apache.org/dist/spark/docs/3.3.1/quick-start.html>。
#### 常用CLI
Spark常用的CLI如下所示：
- **spark-shell**
  提供了一个简单学习API的方法，类似于交互式数据分析的工具。同时支持Scala和Python两种语言。在Spark目录下，执行*./bin/spark-shell*即可进入Scala交互式界面从HDFS中获取数据，再操作RDD。
  示例：一行代码可以实现统计一个文件中所有单词。
  **scala\> sc.textFile("hdfs://10.96.1.57:9000//wordcount_data.txt").flatMap(l =\> l.split(" ")).map(w =\> (w,1)).reduceByKey(_+_).collect()**
  
- **spark-submit**
  用于提交Spark应用到Spark集群中运行，返回运行结果。需要指定class、master、jar包以及入参。
  示例：执行jar包中的GroupByTest例子，入参为4个，指定集群运行模式是local单核运行。
  **./bin/spark-submit --class org.apache.spark.examples.GroupByTest --master local\[1\] examples/jars/spark-examples_2.12-3.1.1-hw-ei-311001-SNAPSHOT.jar 6 10 10 3**
  
- **spark-sql**
  可用于local模式或者集群模式运行Hive元数据服务以及命令行查询。如果需要查看其逻辑计划，只需在SQL语句前面加上explain extended即可。
  示例：
  **Select key from src group by key**
  
- **run-example**
  用来运行或者调试Spark开源社区中的自带的example。
  示例：执行SparkPi。
  **./run-example SparkPi 100**
  
 
