spark在日常工作中用的最多的 代码
初始化SparkSession
在使用Spark的任何功能之前,都需要初始化一个SparkSession对象。
import org.apache.spark.sql.SparkSession;
SparkSession spark = SparkSession.builder()
.appName("Spark Application")
.master("local[*]") // 本地模式,适用于开发和测试,生产环境使用集群模式
.getOrCreate();
读取数据:
从各种数据源(如CSV、JSON、Parquet、Hive等)中读取数据。
Dataset<Row> df = spark.read().format("csv")
.option("header", "true")
.load("path/to/data.csv");
数据转换和处理
使用DataFrame和Dataset API进行数据转换和处理,如选择列、过滤行、聚合等。
df.select("column1", "column2") // 选择列
.filter(col("column1").equalTo("value")) // 过滤行
.groupBy("column2") // 分组
.agg(count("column1").alias("count")) // 聚合
.show(); // 显示结果
SQL查询
对DataFrame或Dataset执行SQL查询。
df.createOrReplaceTempView("temp_view"); // 注册临时视图
Dataset<Row> result = spark.sql("SELECT column1, column2 FROM temp_view WHERE condition");
result.show(); // 显示SQL查询结果
写入数据:
将处理后的数据写入到各种数据存储系统中,如HDFS、Hive、CSV、Parquet等。
df.write().format("parquet")
.mode("overwrite") // 覆盖模式,也可以选择append等
.save("path/to/output/directory");
缓存和持久化:
为了提高性能,可以将DataFrame或Dataset缓存起来或在磁盘上持久化。
df.cache(); // 缓存到内存中
// 或者
df.persist(); // 持久化到磁盘或内存中,取决于StorageLevel设置
关闭SparkSession
程序结束后,关闭SparkSession以释放资源。
spark.stop();
这些代码片段是Spark日常工作中最常用的,但具体使用时还需要根据业务需求和数据源的特性进行调整和扩展。注意,上面的代码示例是基于Java语言的,Spark也支持Scala、Python等其他语言,并且API在不同语言之间有所差异。