Spark能够从任何支持Hadoop的存储源来创建RDD,包括本地的文件系统,HDFS,Cassandra,Hbase,Amazon S3等。Spark支持textFile、SequenceFiles和任何其他的Hadoop的InputFormat格式的数据。

1、textfile的RDD可以通过SparkContext’s textFile 的方法来创建,这个方法需要传递一个文件路径URL作为参数,然后读取对应文件的每一行的数据,形成一个以行数据为单位的集合。例如:

    scala> val distFile = sc.textFile("data.txt")

    distFile: RDD[String] = MappedRDD@1d4cee08

2、textfile方法中,如果传入的是一个本地文件的URL,这必须保证Spark集群中其它机器也能够访问相同的URL。

3、在Spark中,所有的输入方法(包括textFile)都支持文件夹、压缩文件、通配符。例如:

    textFile("/my/directory"), textFile("/my/directory/*.txt"), and textFile("/my/directory/*.gz").

4、textFile方法中,还接受第二个参数,该参数是指定对应产生的RDD的分区数。默认情况下,Spark会根据HDFS的块的大小来作为分区的大小,即以块的数量作为分区的数目M。你可以设置大于这个分区数M,但是不能设置小于这个分区数M。

5、除了textFile方法之外,Spark提供了如下的方法来加载外部数据:

  (1)SparkContext.wholeTextFiles

    该方法是读一个路径下所有的小文件,并且将每个小文件内容content作为value,文件的filename作为key,以pairs(key,value)的形式返回给客户端。该方法与textfile刚好相反,textfile是返    回每个文件的每一行的记录作为key,value的形式返回。

  (2)SparkContext’s sequenceFile[K, V]

    对于sequenceFiles,我们可以用sequenceFile[K,V]方法来加载外部的数据,其中K,V的类型是文件中key和value的类型。但这都是Hadoop的Writable(是一个接口类型)类型的子类。

  (3)SparkContext.hadoopRDD

    对于其他的Hadoop的InputFormats,你可以用hadoopRDD的方法来加载外部的数据源。该方法需要传入特定的 JobConf and input format class, key class and value class

6、RDD的简单的保存方式:

  RDD.saveAsObjectFile and SparkContext.objectFile  support saving an RDD in a simple format consisting of serialized Java objects. While this is not as efficient as specialized     formats like Avro, it offers an easy way to save any RDD.

Spark External Datasets的更多相关文章

  1. Spark官方文档 - 中文翻译

    Spark官方文档 - 中文翻译 Spark版本:1.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linki ...

  2. Spark官方2 ---------Spark 编程指南(1.5.0)

    概述 在高层次上,每个Spark应用程序都由一个运行用户main方法的driver program组成,并在集群上执行各种 parallel operations.Spark提供的主要抽象是resil ...

  3. Spark官方文档翻译(一)~Overview

    Spark官方文档翻译,有问题请及时指正,谢谢. Overview页 http://spark.apache.org/docs/latest/index.html Spark概述 Apache Spa ...

  4. spark RDD官网RDD编程指南

    http://spark.apache.org/docs/latest/rdd-programming-guide.html#using-the-shell Overview(概述) 在较高的层次上, ...

  5. Spark Programming Guide《翻译》

    转载必须注明出处:梁杰帆 在这里要先感谢原作者们!如果各位在这里发现了错误之处,请大家提出 1.Initializing Spark     Spark程序必须做的第一件事就是创建一个SparkCon ...

  6. spark api之一:Spark官方文档 - 中文翻译

    转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述(Overview) 2 引入Spark(Linking with Spark) 3 初始化Spark(Initi ...

  7. Spark RDD初探(一)

    本文概要 本文主要从以下几点阐述RDD,了解RDD 什么是RDD? 两种RDD创建方式 向给spark传递函数Passing Functions to Spark 两种操作之转换Transformat ...

  8. Spark译文(一)

    Spark Overview(Spark概述) ·Apache Spark是一种快速通用的集群计算系统. ·它提供Java,Scala,Python和R中的高级API,以及支持通用执行图的优化引擎. ...

  9. 2.初始化spark

    参考:  RDD programming guide http://spark.apache.org/docs/latest/rdd-programming-guide.html  SQL progr ...

随机推荐

  1. redsocks 将socks代理转换成全局代理

    redsocks 需要手动下载编译.前置需求为libevent组件,当然gcc什么的肯定是必须的. 获取源码 git clone https://github.com/darkk/redsocks 安 ...

  2. 第一章 Java的I/O演进之路

    I/O基础入门 Java的I/O演进 第一章 Java的I/O演进之路 1.1 I/O基础入门 1.1.1 Linux网络I/O模型简介 根据UNIX网络编程对I/O模型的分类,UNIX提供了5中I/ ...

  3. 设置git 不提交 修改权限的文件

    vim .git/config  打开文件

  4. 纯JS 将table表格导出到excel

    html <div > <button type="button" onclick="getXlsFromTbl('tableExcel','myDiv ...

  5. win7优化

  6. ASCII编码对照表

    Bin(二进制) Oct(八进制) Dec(十进制) Hex(十六进制) 缩写/字符 解释 0000 0000 0 0 00 NUL(null) 空字符 0000 0001 1 1 01 SOH(st ...

  7. int unsigned实验

    create table t1(a int unsigned,b int unsigned); insert into t1 select 1,2; select 1-2 from t1; Error ...

  8. IO 相关配置参数

    INNODB I/O相关配置 记录日志为顺序I/O,刷新日志到数据文件为随机操作.顺序操作性能快于随机IO. innodb_log_file_size innodb_log_files_in_grou ...

  9. Entity Framework – (复数)Plural and (单数)Singular 表名Table names

    By default, the Entity Framework will assume that all of the names of your tables in your database a ...

  10. JAVA类和对象课后作业

    1.使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询"你已经创建了多少个对象?" 代码: //显示类 //YiMingLai 2 ...