2026-03-09
Python
00
2025-09-20
Linux
00

Linux Shell 是与操作系统交互的强大工具。无论是系统管理、文件处理还是网络配置,Shell 命令都能让任务变得简单而高效。本文将整理一些常用的 Linux Shell 命令,帮助大家更好地掌握和使用 Linux。

基本命令

1. ls - 列出目录内容

列出目录中的文件和子目录。

bash
ls ls -l # 详细信息 ls -a # 包括隐藏文件

2. cd - 切换目录

切换到指定目录。

bash
cd /path/to/directory cd ~ # 切换到主目录 cd - # 切换到上一个目录
2025-09-20
Spark
00

通用的加载和保存方式

SparkSQL 提供了通用的保存数据和数据加载的方式。这里的通用指的是使用相同的 API,根据不同的参数读取和保存不同格式的数据,SparkSQL 默认读取和保存的文件格式 为 parquet

  1. 加载数据

spark.read.load 是加载数据的通用方法

scala
scala> spark.read. csv format jdbc json load option options orc parquet schema table text textFile

如果读取不同格式的数据,可以对不同的数据格式进行设定

scala
scala> spark.read.format("…")[.option("…")].load("…")
  • format("…"):指定加载的数据类型,包括"csv"、"jdbc"、"json"、"orc"、"parquet"和 "textFile"。
  • load("…"):在"csv"、"jdbc"、"json"、"orc"、"parquet"和"textFile"格式下需要传入加载 数据的路径。
  • option("…"):在"jdbc"格式下需要传入 JDBC 相应参数,url、user、password 和 dbtable 我们前面都是使用 read API 先把文件加载到 DataFrame 然后再查询,其实,我们也可以直 接在文件上进行查询: 文件格式.文件路径
2025-09-20
Spark
00

UDF

  1. 创建 DataFrame
scala
scala> val df = spark.read.json("data/user.json") df: org.apache.spark.sql.DataFrame = [age: bigint, username: string]
  1. 注册UDF
scala
scala> spark.udf.register("addName",(x:String)=> "Name:"+x) res9: org.apache.spark.sql.expressions.UserDefinedFunction = UserDefinedFunction(<function1>,StringType,Some(List(StringType)))
  1. 创建临时表
scala
scala> df.createOrReplaceTempView("people")
  1. 应用UDF
scala
scala> spark.sql("Select addName(name),age from people").show()
2025-09-20
Spark
00

实现原理

累加器用来把 Executor 端变量信息聚合到 Driver 端。在 Driver 程序中定义的变量,在 Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后, 传回 Driver 端进行 merge。

基础编程

系统累加器

scala
val rdd = sc.makeRDD(List(1,2,3,4,5)) // 声明累加器 var sum = sc.longAccumulator("sum"); rdd.foreach( num => { // 使用累加器 sum.add(num) } ) // 获取累加器的值 println("sum = " + sum.value)