Spark多语言开发

article/2025/10/9 1:42:00

目录

  • 1 多语言开发-说明
  • 2 Java-Spark-掌握
    • 2.1 SparkCore
    • 2.2 SparkStreaming
    • 2.3 SparkSQL
    • 2.4 StructuredStreaming
    • 2.5 线性回归算法-房价预测案例
      • 2.5.1 需求
      • 代码实现
  • 3 PySpark-了解
    • 3.1 SparkCore
    • 3.2 SparkStreaming
    • 3.3 SparkSQL
    • 3.4 StructuredStreaming
    • 3.5 决策树算法-相亲决策案例
      • 需求
      • 3.5.1 思路
      • 3.5.2 代码实现


1 多语言开发-说明

在这里插入图片描述

2 Java-Spark-掌握

https://github.com/apache/spark/tree/master/examples/src/main/java/org/apache/spark/examples

2.1 SparkCore

package cn.oldlu.hello;import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import scala.Tuple2;import java.util.Arrays;
import java.util.List;/*** Author oldlu* Desc 演示使用Java语言开发SparkCore完成WordCount*/
public class JavaSparkDemo01 {public static void main(String[] args) {//0.TODO 准备环境SparkConf sparkConf = new SparkConf().setAppName("JavaSparkDemo").setMaster("local[*]");JavaSparkContext jsc = new JavaSparkContext(sparkConf);jsc.setLogLevel("WARN");//1.TODO 加载数据JavaRDD<String> fileRDD = jsc.textFile("data/input/words.txt");//2.TODO 处理数据-WordCount//切割/*@FunctionalInterfacepublic interface FlatMapFunction<T, R> extends Serializable {Iterator<R> call(T t) throws Exception;}*///注意:java的函数/lambda表达式的语法:// (参数列表)->{函数体}JavaRDD<String> wordsRDD = fileRDD.flatMap(line -> Arrays.asList(line.split(" ")).iterator());//每个单词记为1JavaPairRDD<String, Integer> wordAndOneRDD = wordsRDD.mapToPair(word -> new Tuple2<>(word, 1));//分组聚合JavaPairRDD<String, Integer> wordAndCountRDD = wordAndOneRDD.reduceByKey((a, b) -> a + b);//3.TODO 输出结果List<Tuple2<String, Integer>> result = wordAndCountRDD.collect();//result.forEach(t-> System.out.println(t));result.forEach(System.out::println);//方法引用/就是方法转为了函数//4.TODO 关闭资源jsc.stop();}
}

2.2 SparkStreaming

package cn.oldlu.hello;import org.apache.spark.SparkConf;
import org.apache.spark.streaming.Durations;
import org.apache.spark.streaming.api.java.JavaPairDStream;
import org.apache.spark.streaming.api.java.JavaReceiverInputDStream;
import org.apache.spark.streaming.api.java.JavaStreamingContext;
import scala.Tuple2;import java.util.Arrays;/*** Author oldlu* Desc 演示使用Java语言开发SparkStreaming完成WordCount*/
public class JavaSparkDemo02 {public static void main(String[] args) throws InterruptedException {//0.TODO 准备环境SparkConf sparkConf = new SparkConf().setAppName("JavaSparkDemo").setMaster("local[*]");//JavaSparkContext jsc = new JavaSparkContext(sparkConf);//jsc.setLogLevel("WARN");JavaStreamingContext jssc = new JavaStreamingContext(sparkConf, Durations.seconds(5));jssc.sparkContext().setLogLevel("WARN");//1.TODO 加载数据JavaReceiverInputDStream<String> lines = jssc.socketTextStream("node1", 9999);//2.TODO 处理数据-WordCountJavaPairDStream<String, Integer> result = lines.flatMap(line -> Arrays.asList(line.split(" ")).iterator()).mapToPair(word -> new Tuple2<>(word, 1)).reduceByKey((a, b) -> a + b);//3.TODO 输出结果result.print();//4.TODO 启动并等待停止jssc.start();jssc.awaitTermination();//4.TODO 关闭资源jssc.stop();}
}

2.3 SparkSQL

package cn.oldlu.hello;import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Encoders;
import org.apache.spark.sql.SparkSession;import java.util.Arrays;
import static org.apache.spark.sql.functions.col;/*** Author oldlu* Desc 演示使用Java语言开发SparkSQL完成WordCount*/
public class JavaSparkDemo03 {public static void main(String[] args) {//0.TODO 准备环境SparkSession spark = SparkSession.builder().appName("JavaSparkDemo").master("local[*]").getOrCreate();spark.sparkContext().setLogLevel("WARN");//1.TODO 加载数据Dataset<String> ds = spark.read().textFile("data/input/words.txt");//2.TODO 处理数据-WordCountDataset<String> wordsDS = ds.flatMap((String line) -> Arrays.asList(line.split(" ")).iterator(), Encoders.STRING());//TODO ====SQLwordsDS.createOrReplaceTempView("t_word");String sql = "select value, count(*) as counts " +"from t_word " +"group by value " +"order by counts desc";spark.sql(sql).show();//TODO ====DSL/*Dataset<Row> temp = wordsDS.groupBy("value").count();temp.orderBy(temp.col("count").desc()).show();*/wordsDS.groupBy("value").count()//.orderBy($"count".desc()).show();.orderBy(col("count").desc()).show();//3.TODO 输出结果//4.TODO 关闭资源spark.stop();}
}

2.4 StructuredStreaming

package cn.oldlu.hello;import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Encoders;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.streaming.OutputMode;
import org.apache.spark.sql.streaming.StreamingQueryException;import java.util.Arrays;
import java.util.concurrent.TimeoutException;import static org.apache.spark.sql.functions.col;
/*** Author oldlu* Desc 演示使用Java语言开发StructuredStreaming完成WordCount*/
public class JavaSparkDemo04 {public static void main(String[] args) throws TimeoutException, StreamingQueryException {//0.TODO 准备环境SparkSession spark = SparkSession.builder().appName("JavaSparkDemo").master("local[*]").config("spark.sql.shuffle.partitions", "4").getOrCreate();spark.sparkContext().setLogLevel("WARN");//1.TODO 加载数据Dataset<Row> lines = spark.readStream().format("socket").option("host", "node1").option("port", 9999).load();//2.TODO 处理数据-WordCountDataset<String> ds = lines.as(Encoders.STRING());Dataset<String> wordsDS = ds.flatMap((String line) -> Arrays.asList(line.split(" ")).iterator(), Encoders.STRING());//TODO ====SQLwordsDS.createOrReplaceTempView("t_word");String sql = "select value, count(*) as counts " +"from t_word " +"group by value " +"order by counts desc";Dataset<Row> result1 = spark.sql(sql);//TODO ====DSLDataset<Row> result2 = wordsDS.groupBy("value").count().orderBy(col("count").desc());//3.TODO 输出结果result1.writeStream().format("console").outputMode(OutputMode.Complete()).start();/*.awaitTermination()*/result2.writeStream().format("console").outputMode(OutputMode.Complete()).start().awaitTermination();//4.TODO 关闭资源spark.stop();}
}

2.5 线性回归算法-房价预测案例

2.5.1 需求

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

特征列:
|房屋编号mlsNum|城市city|平方英尺|卧室数bedrooms|卫生间数bathrooms|车库garage|年龄age|房屋占地面积acres|
标签列:
房屋价格price

代码实现

0.准备环境
1.加载数据
2.特征处理 
3.数据集划分0.8训练集/0.2测试集
4.使用训练集训练线性回归模型
5.使用测试集对模型进行测试
6.计算误差rmse均方误差
7.模型保存(save)方便后续使用(load)
8.关闭资源
package cn.oldlu.hello;import org.apache.spark.ml.evaluation.RegressionEvaluator;
import org.apache.spark.ml.feature.VectorAssembler;
import org.apache.spark.ml.regression.LinearRegression;
import org.apache.spark.ml.regression.LinearRegressionModel;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.streaming.StreamingQueryException;import java.io.IOException;
import java.util.concurrent.TimeoutException;/*** Author oldlu* Desc 演示使用Java语言开发SparkMlLib-线性回归算法-房价预测案例*/
public class JavaSparkDemo05 {public static void main(String[] args) throws TimeoutException, StreamingQueryException, IOException {//0.TODO 准备环境SparkSession spark = SparkSession.builder().appName("JavaSparkDemo").master("local[*]").config("spark.sql.shuffle.partitions", "4").getOrCreate();spark.sparkContext().setLogLevel("WARN");//TODO 1.加载数据Dataset<Row> homeDataDF = spark.read().format("csv").option("sep", "|")//指定分隔符.option("header", "true")//是否有表头.option("inferSchema", "true")//是否自动推断约束.load("data/input/homeprice.data");homeDataDF.printSchema();homeDataDF.show();/*root|-- mlsNum: integer (nullable = true)|-- city: string (nullable = true)|-- sqFt: double (nullable = true)|-- bedrooms: integer (nullable = true)|-- bathrooms: integer (nullable = true)|-- garage: integer (nullable = true)|-- age: integer (nullable = true)|-- acres: double (nullable = true)|-- price: double (nullable = true)
//|房屋编号|城市|平方英尺|卧室数|卫生间数|车库|年龄|房屋占地面积|房屋价格
+-------+------------+-------+--------+---------+------+---+-----+---------+
| mlsNum|        city|   sqFt|bedrooms|bathrooms|garage|age|acres|    price|
+-------+------------+-------+--------+---------+------+---+-----+---------+
|4424109|Apple Valley| 1634.0|       2|        2|     2| 33| 0.04| 119900.0|
|4404211|   Rosemount|13837.0|       4|        6|     4| 17|14.46|3500000.0|
|4339082|  Burnsville| 9040.0|       4|        6|     8| 12| 0.74|2690000.0|*///TODO 2.特征处理//特征选择Dataset<Row> featuredDF = homeDataDF.select("sqFt", "age", "acres", "price");//特征向量化Dataset<Row> vectorDF = new VectorAssembler().setInputCols(new String[]{"sqFt", "age", "acres"})//指定要对哪些特征做向量化.setOutputCol("features")//向量化之后的特征列列名.transform(featuredDF);vectorDF.printSchema();vectorDF.show();/*root|-- sqFt: double (nullable = true)|-- age: integer (nullable = true)|-- acres: double (nullable = true)|-- price: double (nullable = true)|-- features: vector (nullable = true)+-------+---+-----+---------+--------------------+|   sqFt|age|acres|    price|            features|+-------+---+-----+---------+--------------------+| 1634.0| 33| 0.04| 119900.0|  [1634.0,33.0,0.04]||13837.0| 17|14.46|3500000.0|[13837.0,17.0,14.46]|| 9040.0| 12| 0.74|2690000.0|  [9040.0,12.0,0.74]|*///TODO 3.数据集划分0.8训练集/0.2测试集Dataset<Row>[] arr = vectorDF.randomSplit(new double[]{0.8, 0.2}, 100);Dataset<Row> trainSet = arr[0];Dataset<Row> testSet = arr[1];//TODO 4.构建线性回归模型并使用训练集训练LinearRegressionModel model = new LinearRegression().setFeaturesCol("features")//设置特征列(应该设置向量化之后的).setLabelCol("price")//设置标签列(数据中已经标记好的原本的价格).setPredictionCol("predict_price")//设置预测列(后续做预测时预测的价格).setMaxIter(10)//最大迭代次数.fit(trainSet);//使用训练集进行训练//TODO 5.使用测试集对模型进行测试/预测Dataset<Row> testResult = model.transform(testSet);testResult.show(false);//TODO 6.计算误差rmse均方误差double rmse = new RegressionEvaluator()//创建误差评估器.setMetricName("rmse") //设置要计算的误差名称,均方根误差 (sum((y-y')^2)/n)^0.5.setLabelCol("price")//设置真实值是哪一列.setPredictionCol("predict_price")//设置预测值是哪一列.evaluate(testResult);//对数据中的真实值和预测值进行误差计算System.out.println("rmse为:" + rmse);//TODO 7.模型保存(save)方便后续使用(load)//model.save("path");//LinearRegressionModel lmodel = LinearRegressionModel.load("path");//TODO 8.关闭资源spark.stop();}
}

3 PySpark-了解

python教程600集

https://www.bilibili.com/video/BV1ex411x7Em

pyspark官方案例

https://github.com/apache/spark/tree/master/examples/src/main/python

环境准备

1.先安装Anaconda3-5.1.0-Windows-x86_64-Python3.6.exe

2.安装pycharm-professional-2017.1.4-Win开发工具

3.打开Anaconda安装pyspark环境/或者cmd安装 pip install pyspark

在这里插入图片描述

4.打开pycharm创建python项目(注意关联Anaconda中的python)

在这里插入图片描述

3.1 SparkCore

from pyspark import SparkContextif __name__ == "__main__":sc = SparkContext(master="local[*]", appName="pyspark")lines = sc.textFile("data/words.txt")result = lines.flatMap(lambda line:line.split(" "))\.map(lambda word:(word,1))\.reduceByKey(lambda a,b:a+b)\.collect()for(word,count) in result:print("%s,%i" %(word,count))

3.2 SparkStreaming

from pyspark import SparkContext
from streaming import StreamingContextif __name__ == "__main__":"""演示pyspark-SparkStreaming"""# 创建环境sc = SparkContext(master="local[*]", appName="pyspark")ssc = StreamingContext(sc,5)lines = ssc.socketTextStream("node1",9999)result = lines.flatMap(lambda line:line.split(" "))\.map(lambda word:(word,1))\.reduceByKey(lambda a,b:a+b)result.pprint()ssc.start()ssc.awaitTermination()

3.3 SparkSQL

from sql import SparkSession
from sql.functions import split, explodeif __name__ == "__main__":"""演示pyspark-SparkSQL"""# 创建环境spark = SparkSession.builder.appName("pyspark").master("local[*]").getOrCreate()df = spark.read.text("data/words.txt")wordsDF = df.select(explode(split(df.value," ")).alias("word"))wordsDF.createOrReplaceTempView("t_words")spark.sql("select word,count(*) counts from t_words group by word order by counts desc").show()wordsDF.groupBy("word").count().orderBy("count", ascending=False).show()spark.stop()

3.4 StructuredStreaming

from sql import SparkSession
from sql.functions import split, explodeif __name__ == "__main__":"""演示pyspark-StructuredStreaming"""# 创建环境spark = SparkSession.builder.appName("pyspark").master("local[*]") \.config("spark.sql.shuffle.partitions", "2") \.getOrCreate()df = spark.readStream\.format("socket") \.option('host', "node1") \.option('port', 9999) \.load()wordsDF = df.select(explode(split(df.value," ")).alias("word"))wordsDF.createOrReplaceTempView("t_words")result1 = spark.sql("select word,count(*) counts from t_words group by word order by counts desc")result2 = wordsDF.groupBy("word").count().orderBy("count", ascending=False)result1.writeStream.format("console").outputMode("complete").start()result2.writeStream.format("console").outputMode("complete").start().awaitTermination()# spark.streams.awaitAnyTerminationspark.stop()

3.5 决策树算法-相亲决策案例

需求

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.5.1 思路

从历史数据中找出一些"关键因素"来作为树的节点/决策依据

在信息论中, 信息熵可以衡量系统的不确定性,如果让信息熵变小就可以让系统的不确定性变小/也就是变得更加确定!

而我们的目标也是让系统的不确定性变小, 让我们的程序能够更加特征尽快的做出确定性的决策/判断

所以现在的目标就变成了选择一些能够让系统的信息熵变小的特征作为树的节点/决策依据,也就是要选择信息增益较大的特征(信息增益指的是信息熵减少的程度!)

而且信息熵/信息增益能够量化!也就是能够计算!

总结: 决策树算法中需要选择当前信息增益最大的特征作为树的节点/决策依据,依次选择相应的特征作为树的节点/决策依据,直到形成一颗决策树!

3.5.2 代码实现

from ml import Pipeline
from ml.classification import DecisionTreeClassifier, DecisionTreeClassificationModel
from ml.evaluation import MulticlassClassificationEvaluator
from ml.feature import StringIndexer, VectorAssembler, IndexToString
from sql import SparkSessionif __name__ == "__main__":"""演示pyspark-决策树分类案例-相亲决策案例"""# 0.创建环境spark = SparkSession.builder.appName("pyspark").master("local[*]") \.config("spark.sql.shuffle.partitions", "2") \.getOrCreate()# 0.加载数据df = spark.read.format("csv")\.option("sep", ",") \.option("header", "true") \.option("inferSchema", "true") \.load("data/appointment.data")df.printSchema()df.show()# 1.标签数值化# 设置哪一列是字符串格式的标签列# 设置标签数值化之后的列名stringIndexer = StringIndexer()\.setInputCol("label")\.setOutputCol("label_index").fit(df)# 2.特征向量化# 设置特征列有哪些列# 设置特征向量化之后的列名vectorAssembler = VectorAssembler() \.setInputCols(["age", "handsome", "salary", "programmer"]) \.setOutputCol("features")# 后续可以使用pipeline做统一的训练和转换,所以这里不需要调用transform# 3.构建决策树模型# 设置向量化之后的特征列# 设置数值化之后的标签列# 设置预测列名称(预测出来的是数字)decisionTreeClassifier = DecisionTreeClassifier()\.setFeaturesCol("features")\.setLabelCol("label_index")\.setPredictionCol("predict_index")\.setMaxDepth(5)# 后续可以使用pipeline做统一的训练和转换,所以这里不需要调用fit# 4.标签还原# 预测出来的标签数值还原为字符串# 设置数值化的预测列# 设置转为字符串后的预测列的列名# 设置数值和字符串的对应关系在哪里indexToString = IndexToString().setInputCol("predict_index")\.setOutputCol("predict_String")\.setLabels(stringIndexer.labels)# 5.数据集划分trainSet,testSet = df.randomSplit(weights=[0.8,0.2])# 6.构建pipelinepipeline = Pipeline().setStages([stringIndexer,vectorAssembler,decisionTreeClassifier,indexToString])# 7.使用训练集训练model = pipeline.fit(trainSet)# 8.使用测试集测试模型testResult = model.transform(testSet)testResult.show()# 9.输出决策过程print("模型决策过程为: \n %s" % model.stages[2].toDebugString)# 10评估模型误差/好坏accuracy = MulticlassClassificationEvaluator(labelCol="label_index", predictionCol="predict_index", metricName="accuracy")\.evaluate(testResult)print("测试集错误率为: %f" % (1.0 - accuracy))# model.save("path")# model2 =DecisionTreeClassificationModel.load("path")spark.stop()

http://chatgpt.dhexx.cn/article/tF4DYyc5.shtml

相关文章

eclipse配置spark开发环境

前言 无论Windows 或Linux 操作系统&#xff0c;构建Spark 开发环境的思路一致&#xff0c;基于Eclipse 或Idea&#xff0c;通过Java、Scala 或Python 语言进行开发。安装之前需要提前准备好JDK、Scala 或Python 环境&#xff0c;然后在Eclipse 中下载安装Scala 或Python 插件(…

idea搭建spark开发环境完整版(windows)

利用intellij idea 搭建spark开发环境&#xff08;windows&#xff09; 本文配置所有环境 Win10 企业版2016长期服务版 Jdk1.8.0.131 Hadoop2.7.3 Spark2.2.0 Scala2.11.12 一、Jdk环境配置 下载 http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-…

Spark开发环境搭建(提供实验平台)

Spark开发环境搭建 1&#xff09;Scala环境 1. 前置说明 安装与配置Scala开发环境。 实验平台直达链接 Scala是一种函数式面向对象语言&#xff0c;它融汇了许多前所未有的特性&#xff0c;而同时又运行于JVM之上。随着开发者对Scala的兴趣日增&#xff0c;以及越来越多的…

使用Python开发spark

使用Python开发 一、Python编程语言 1.1、Python语言的特点 Python是一种面向对象的解释型计算机程序设计语言&#xff0c;具有丰富和强大的库。如今Python已经成为继JAVA&#xff0c;C之后的的第三大编程语言。 1、可性移强植 简易单学 2、免开费源 丰富库的 3、可性移强植…

Spark开发环境搭建(学习笔记)

夫君子之行&#xff0c;静以修身&#xff0c;俭以养德&#xff0c;非淡泊无以明志&#xff0c;非宁静无以致远。 夫学须静也&#xff0c;才须学也&#xff0c;非学无以广才&#xff0c;非志无以成学。淫慢则不能励精&#xff0c;险躁则不能冶性。 年与时驰&#xff0c;意与日去…

IDEA下使用maven配置Spark开发环境

IDEA下使用maven配置Spark开发环境 1、安装Java2、配置环境变量3、配置Hadoop环境4、安装Scala插件5、配置maven4、Spark编程Spark测试 使用到的软件安装包: https://pan.baidu.com/s/1fOKsPYBmOUhHupT50_6yqQ 提取码: d473 1、安装Java 点击下一步&#xff0c; 点击下一步&a…

windows配置spark开发环境

声明&#xff1a;搭建过程中&#xff0c;会因为版本兼容问题&#xff0c;造成闪退等问题&#xff0c;以下是我自用的版本&#xff0c;如需其他版本&#xff0c;最好先查一下兼容问题 1.jdk-8u333-windows-x64下载链接 2.scala-2.13.10下载链接 3.hadoop-3.2.2下载链接 4.spark-…

Spark的安装与使用 第2关:安装与配置Spark开发环境

本关任务:安装与配置Spark开发环境。 相关知识 Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark拥有Hadoop MapReduce所具有的优点;但不同于Map…

Spark开发环境的搭建

(1)在/opt目录下建立 software,module两个文件&#xff0c;software用来下载安装包&#xff0c;下载或的安装包可以解压到module文件。小编下载spark的版本是&#xff1a;spark-2.3.2-bin-hadoop2.7.tgz。所以下载spark版本到software文件后&#xff0c;解压到module文件中&…

Spark 开发环境

一、安装JDK 本文写于2022年4月&#xff0c;此时最新版的JDK已经更新到了JDK17——下载地址。为了满足开发人员的需要&#xff0c;Oracle仍然提供了JDK8和JDK11可供下载&#xff0c;下载链接也在上面的网站上&#xff0c;只需要把页面下滑即可。 注&#xff1a;由于需要配置Sp…

PyCharm搭建Spark开发环境windows下安装pyspark

目录 windows下安装pysparkPyCharm搭建Spark开发环境 windows下安装pyspark spark和hadoop版本版本之间有对应关系 安装jdk 安装hadoop 下载 hadoop-2.7.7.tar.gz 配置环境变量 不再演示 下载winutils.exe https://github.com/steveloughran/winutils 选择对应的hadoop版…

MaxCompute Spark开发指南

0. 概述 本文档面向需要使用MaxCompute Spark进行开发的用户使用。本指南主要适用于具备有Spark开发经验的开发人员。 MaxCompute Spark是MaxCompute提供的兼容开源的Spark计算服务&#xff0c;它在统一的计算资源和数据集权限体系之上&#xff0c;提供Spark计算框架&#xf…

idea搭建Spark开发环境

最近在公司换了一个项目组&#xff0c;做Spark项目的&#xff0c;于是开始学Spark。 版本: <scala.version>2.13.8</scala.version><spark.version>3.3.0</spark.version> 1.首先安装Scala Scala安装成功之后&#xff1a; 2.新建maven项目 pom文件: …

Spark开发学习之使用idea开发Spark应用

Spark学习之使用idea开发Spark应用 该文章是基于jdk1.8&#xff0c;idea开发工具&#xff0c;maven都配置好的前提下进行讲述的。 背景 由于已经在远程centos服务器上部署了saprk服务&#xff0c;但基于spark的应用程序的代码却是在本地idea开发的&#xff0c;那么如何能让本…

Spark开发环境搭建

一、安装Spark 1.1 下载并解压 官方下载地址&#xff1a;http://spark.apache.org/downloads.html &#xff0c;选择 Spark 版本和对应的 Hadoop 版本后再下载&#xff1a; 解压安装包&#xff1a; # tar -zxvf spark-2.2.3-bin-hadoop2.6.tgz1.2 配置环境变量 # vim /e…

IDEA2022 配置spark开发环境

本人强烈建议在 linux环境下 学习 spark&#xff01;&#xff01;&#xff01; Introduction Apache Spark是一个快速且通用的分布式计算引擎&#xff0c;可以在大规模数据集上进行高效的数据处理&#xff0c;包括数据转换、数据清洗、机器学习等。在本文中&#xff0c;我们将…

spark开发教程

spark开发教程 目录 spark开发教程前言一、初始化spark二、获取数据源1.创建数据结构2.连接外部数据textfilejdbchive 3. 数据处理rdd算子transform算子action算子 dataframe操作dataset操作 4. 共享变量5.写入数据 总结 前言 spark开发主要的基于RDD、Datasets、DataFrame、s…

Spark 开发总结

Spark 开发总结 前言spark UISpark API FunctionWindow.partitionBy Spark udfSpark 中禁止使用returnSpark NullPointExceptionSpark Shuffle FetchFailedExceptionspark 数据倾斜 前言 大数据开发过程中把自己积累的关于Spark的使用方法记录下来&#xff0c;便于不断的回顾和…

Spark 开发入门

文章目录 Spark是什么DAG有向无环图 spark环境搭建Spark开发pyspark使用pythonSpark初始化创建RDD数据的读取和保存文本文件Json文件 RDD的转换操作RDD的行动操作集合操作mysql读取 Spark是什么 整个Hadoop生态圈分为分布式文件系统HDFS、计算框架MapReduce以及资源调度框架Ya…

Spark开发——Spark简介及入门

目录 什么是Spark&#xff1f; Spark有哪些特点和优势 1.计算速度 2.易用性 3.通用性 4.兼容性 Spark架构 Spark基本概念 Spark结构设计 使用Scala语言实现Spark本地词频统计 什么是Spark&#xff1f; Spark它是一个用于大规模数据处理的实时计算引擎。 Spark有哪些…