在linux上创建目录到hdfs,怎样使用Linux和HDFS创建RDD?

2e05f965bdb97c11ba9eba90ac515be5.gif

Spark可以从Hadoop支持的任何存储源中加载数据去创建RDD,包括本地文件系统和HDFS等文件系统。

接下来,我们通过Spark中的SparkContext对象调用textFile()方法加载数据创建RDD。这里以Linux本地系统和HDFS分布式文件系统为例,讲解如何创建RDD。

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

在Linux本地文件系统中有一个名为test.txt的文件,具体内容如文件1所示。

文件1 test.txt

1 hadoop spark

2 itcast heima

3 scala spark

4 spark itcast

5 itcast hadoop

在Linux本地系统读取test.txt文件数据创建RDD,具体代码如下:

scala> val test=sc.textFile("file:///export/data/test.txt")

test: org.apache.spark.rdd.RDD[String]=file:///export/data/test.txt

MapPartitionsRDD[1] at textFile at :24

上述的代码中,文件路径中的“file://”表示从本地Linux文件系统中读取文件。“test:org.apache.spark.rdd.RDD[String]...”是命令执行后返回的信息,而test则是一个创建好的RDD。当执行textFile()方法后,Spark会从Linux本地文件test.txt中加载数据到内存中,在内存中生成了一个RDD对象(即test),并且这个RDD里面包含若干个String类型的元素,也就是说,从test.txt文件中读取出来的每一行文本内容,都是RDD中的一个元素。

2. 从HDFS中加载数据创建RDD

假设,在HDFS上的“/data”目录下有一个名为test.txt的文件,该文件内容与文件3-1相同。接下来,我们通过加载HDFS中的数据创建RDD,具体代码如下:

scala> val testRDD=sc.textFile("/data/test.txt")

testRDD:org.apache.spark.rdd.RDD[String]=/data/test.txt MapPartitionsRDD[1]

at textFile at :24

执行上述代码后,从返回结果testRDD的属性中看出RDD创建完成。在上述代码中,我们通过textFile(“/data/test.txt”)方法来读取HDFS上的文件,其中方法testFile()中的参数为“/data/test.txt”文件路径,传入的参数也可以为“hdfs://localhost:9000/data/test.txt”和“/test.txt”路径,最终所达效果是一致的。

猜你喜欢:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值