4.RDD创建

 

一、 RDD创建

1. 从本地文件系统中加载数据创建RDD

  • sc:SparkContext的创建

 

 

 

  • 从文件系统中加载数据创建RDD
>> lines = sc.textFile("file://root/DesKtop/my.txt")
>> lines
>> lines.foreach(print)

 

 

 

2. 从HDFS加载数据创建RDD

  • 启动hdfs
start-all.sh

 

hdfs加载数据

  • 上传文件
hdfs dfs -put 要上传的文件路径 上传目的路径

 

上传文件

  • 查看文件
hdfs dfs -ls /user/zt/
hdsf dfs cat ./my.txt

 

查看上传文件

  • 进入spark加载hdfs文件
>> lines = sc.textFile('hdfs://localhost:9000/user/zt/my.txt')
>> lines.foreach(print)

 

加载hdfs

  • 停止hdfs
stop-all.sh

 

停止hdfs

3. 通过并行集合(列表)创建RDD

  • 输入列表、字符串、numpy生成数组

 

 

 

 

二、 RDD操作

转换操作

1. map(func)

含义:将每个元素传递到函数func中,并将结果返回为一个新的数据集

  • lambda函数
>>> data = [1,2,3,4,5]
>>> rdd1 = sc.parallelize(data)
>>> rdd2 = rdd1.map(lambda x:x+10)
>>> rdd2.foreach(print)

 

 

 

 

  • 显式定义函数
复制代码
>>> data = [1,2,3,4,5]
>>> rdd = sc.parallelize(data)
>>> def add(x):
...     return x+10
... 
>>> line = rdd.map(add)
>>> line.foreach(print)
复制代码

 

 

 

 

2. filter(func)

含义:筛选出满足函数func的元素,并返回一个新的数据集

  • lambda函数
>>> lines = sc.textFile('file:///root/Desktop/text.txt')
>>> linesWithSpark = lines.filter(lambda line: "spark" in line)
>>> linesWithSpark.foreach(print)

 

 

 

  • 显式定义函数
>>> def f(line):
...     b = "spark" in line
...     return(b)
... 
>>> t = lines.filter(f)
>>> t.foreach(print)

 

 

 

 

行动操作

1.foreach(print)

foreach操作是直接调迭代rdd中每一条数据

>>> data = [1,2,3,4,5]
>>> rdd = sc.parallelize(data)
>>> rdd.foreach(print)

 

 

 



2.collect()

collect操作在驱动程序中,以数组的形式返回数据集的所有元素

>>> data2 = [1,2,3,4,5]
>>> rdd = sc.parallelize(data2)
>>> rdd.collect()

 

posted @ 2022-06-07 20:09  Little。小盼  阅读(82)  评论(0)    收藏  举报