spark结课之tip2

目录

 spark常用方法总结:

一、从内部创建RDD

(1).通过并行化集合(Parallelized Collections):

基本语法:

基础代码示例:

效果展示:

(2).makeRDD()创建

基本语法:

基础代码示例:

效果展示:

 二、从外部创建RDD

Spark提供了多种方式来读取外部存储系统中的数据,通过外部存储系统(如HDFS、HBase等)读取数据创建RDD基础方式有五种:

1.文本文件:textFile

基本语法:

基础代码示例:

2.Sequence文件:sequenceFile()   [扩充]

​基本语法:

解释:

基础代码示例:

3.对象文件(Object files):

​基本语法:

基础代码示例:

4.Hive表:sql() 函数

​基本语法:

基础代码示例:

5.JDBC连接:

​基本语法:

基础代码示例:

​操作算子:

1.map()方法:

​基本语法:

基础代码示例:

效果展示:​

2.sortBy() 方法:

sortBy() 方法用于根据指定的标准对集合中的元素进行排序,并返回排序后的新集合。​基本语法:

基础代码示例:

效果展示:​​编辑

3.collect() 方法:

​基本语法:

基础代码示例:

效果展示:​

4.flatMap()方法:

​基本语法:

基础代码示例:

效果展示:​​编辑

5.take()方法:

​基本语法:

基础代码示例:

效果展示:

转换操作:

1.union()方法:

基础代码示例:

效果展示:​​编辑

2.filter() 方法:

基础代码示例:

效果展示:​

用于从集合中筛选出满足特定条件的元素,然后返回一个包含满足条件的元素的新集合。

3.distinst()方法:

基础代码示例:

效果展示:​

4.intersection() 方法:

用于获取两个RDD(弹性分布式数据集)之间的交集。基础代码示例:

效果展示:​​编辑

5.subtract() 方法:

基础代码示例:

效果展示:

6.cartesian() 方法:

基础代码示例:

效果展示:

创建键值对RDD的方法:

1.reduceByKey():

基础代码示例:

效果展示:

2.groupBykey():

基础代码示例:

效果展示:

3.combineByKey() :

基础代码示例:

效果展示:

RDD的连接方法:

1.join()方法:

基础代码示例:

效果展示:

2.rightOuterJoin():

基础代码示例:

效果展示:

3.leftOuterJoin():

基础代码示例:

效果展示:

4.fullOuterJoin():

基础代码示例:

效果展示:

5.zip() :

基础代码示例:

效果展示:


 spark常用方法总结:

一、从内部创建RDD

(1).通过并行化集合(Parallelized Collections):

可以使用SparkContextparallelize方法将一个已有的集合转换为RDD。

基本语法:
parallelize(collection, numSlices=None)
基础代码示例:
import org.apache.spark.{SparkConf, SparkContext}

val conf = new SparkConf().setAppName("ParallelizeExample").setMaster("local")
val sc = new SparkContext(conf)

val data = Array(1, 2, 3, 4, 5)
val rdd = sc.parallelize(data)

rdd.foreach(println)

sc.stop()
效果展示:

(2).makeRDD()创建

版本的 Spark 中,通常使用 parallelize() 方法来创建 RDD,这个方法与 makeRDD() 类似,都是用来从集合创建 RDD。

基本语法:
parallelize(collection, numSlices=None)
基础代码示例:
from pyspark import SparkContext

# 创建 SparkContext 对象
sc = SparkContext("local", "parallelize Example")

# 创建一个列表
data = [1, 2, 3, 4, 5]

# 使用 parallelize() 方法创建 RDD
rdd = sc.parallelize(data)

# 打印 RDD 中的元素
for element in rdd.collect():
    print(element)
效果展示:

      

 二、从外部创建RDD

Spark提供了多种方式来读取外部存储系统中的数据,通过外部存储系统(如HDFS、HBase等)读取数据创建RDD基础方式有五种:

1.文本文件:textFile

textFile() 方法是 Apache Spark 中用于从文件系统中读取文本文件的函数

基本语法:
textFile(path, minPartitions=None, use_unicode=True)
基础代码示例:
from pyspark import SparkContext

# 创建 SparkContext 对象
sc = SparkContext("local", "textFile Example")

# 读取文本文件
lines = sc.textFile("path/to/file.txt")

# 打印每一行
for line in lines.collect():
    print(line)

2.Sequence文件:sequenceFile()   [扩充]

sequenceFile()  方法用于在 Apache Spark 中读取 Hadoop SequenceFile 格式的文件,并将其作为 RDD 返回。SequenceFile 是 Hadoop 中一种常用的二进制文件格式,通常用于存储键-值对数据。

​基本语法:
sequenceFile(path, keyClass=None, valueClass=None, keyConverter=None, valueConverter=None, minSplits=None, batchSize=0)
解释:
用法 解读
collection 是要转换为 RDD 的集合,通常是一个列表
path 要读取的 SequenceFile 文件的路径
keyClass 键的类名(可选)
valueClass 值的类名(可选)
keyConverter 键的转换器(可选)
valueConverter 值的转换器(可选)
minSplits 最小分片数(可选)
batchSize 批处理大小(可选)

基础代码示例:
from pyspark import SparkContext

# 创建 SparkContext 对象
sc = SparkContext("local", "sequenceFile Example")

# 读取 SequenceFile 文件并创建 RDD
data = sc.sequenceFile("hdfs://path/to/sequence_file")

# 打印 RDD 中的元素
for key, value in data.collect():
    print(key, value)

3.对象文件(Object files):

 objectFile() 方法用于在 Apache Spark 中读取以序列化形式保存的对象文件,并将其作为 RDD 返回。这种文件格式通常用于将对象序列化为字节流,并存储在文件中,以便在后续操作中进行读取和处理。


​基本语法:
objectFile(path, minPartitions=None, batchSize=0)

基础代码示例:
from pyspark import SparkContext

# 创建 SparkContext 对象
sc = SparkContext("local", "objectFile Example")

# 读取对象文件并创建 RDD
data = sc.objectFile("hdfs://path/to/object_file")

# 打印 RDD 中的元素
for obj in data.collect():
    print(obj)

 

4.Hive表:sql() 函数

在Spark中配置了Hive支持,你可以使用 sql() 函数执行Hive查询并将结果作为RDD返回。sql() 方法是 SparkSession 类的一个成员方法,用于执行 SQL 查询并返回结果作为 DataFrame。sql() 方法可以让你直接在 Spark 中执行 SQL 查询,而不需要编写基于 RDD 的代码。

​基本语法:
DataFrame = sql(sqlQuery)

基础代码示例:
from pyspark.sql import SparkSession

# 创建 SparkSession 对象
spark = SparkSession.builder \
    .appName("SQL Example") \
    .getOrCreate()

# 创建 DataFrame
df = spark.createDataFrame([(1, 'Alice'), (2, 'Bob'), (3, 'Charlie')], ["id", "name"])

# 注册临时表
df.createOrReplaceTempView("people")

# 执行 SQL 查询
result = spark.sql("SELECT * FROM people")

# 显示结果
result.show()

5.JDBC连接:

使用 jdbc() 函数来连接关系型数据库,并通过执行SQL查询来创建RDD。

​基本语法:
jdbcDF = spark.read \
    .jdbc(url="jdbc:postgresql:dbserver", table="schema.tablename",
          properties={"user": "username", "password": "password"})

基础代码示例:
from pyspark.sql import SparkSession
spark = SparkSession.builder \
    .appName("JDBC Example") \
    .config("spark.driver.extraClassPath", "path/tobc-driver.jar") \
    .getOrCreate()

 jdbcDF = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:postgresql://database_server:port/database_name") \
    .option("dbtable", "table_name") \
    .option("user", "username") \
    .option("password", "password") \
    .load()
jdbcDF.show()
spark.stop()

​操作算子:

Scala集合提供了丰富的计算算子,用于实现集合/数组的计算,这些计算子一般针对于List、Array、Set、Map、Range、Vector、Iterator等都可以适用

1.map()方法:

map() 方法用于对集合(如列表、数组、映射等)中的每个元素应用一个函数,并返回结果的新集合。
 

​基本语法:
def map[B](f: (A) ⇒ B): List[B]

基础代码示例:
val list = List(1, 2, 3, 4, 5)
val incremented = list.map(x => x + 1)
// incremented: List[Int] = List(2, 3, 4, 5, 6)

效果展示:​


2.sortB

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值