spark获取数据解读(部分)

该篇博客深入分析了 Spark 2.2.1 版本中如何使用 SparkSession 进行数据读取。通过 `dbData = sc.read.schema(mySchema).format("com.xxxx.spark.sql").options(uri=dbUrl, database=myDatabase, collection=myCollection).load()` 这段代码,解释了如何定义数据模式、指定数据源格式以及配置连接参数来加载数据。" 54866032,4914105,使用Opencv实现Matlab bwmorph的bridge操作,"['OpenCV', '图像处理', '二值图像', '连通区域', '算法实现']
摘要由CSDN通过智能技术生成

本系列文章是下载的是spark2.2.1版本的源码进行相关分析和学习。

理解dbData=sc.read.schema(mySchema).format("com.xxxx.spark.sql").options(uri=dbUrl, database= myDatabase, collection=myCollection).load()

1.SparkSession类的概括(今天我们主要讲解read,所以SparkSession就略过哈):
官方备注为"The entry point to programming Spark with the Dataset and DataFrame API"
即:使用数据集和DataFrame API编写Spark程序的入口点
使用示例:
>>> spark = SparkSession.builder \\
    ...     .master("local") \\
    ...     .appName("Word Count") \\
    ...     .config("spark.some.config.option", "some-value") \\
    ...     .getOrCreate()

    .. autoattribute:: builder
       :annotation:
    """
2.而今天我们来理解一下sparkSession的read方法
官网给出如下内容:
read
Returns a DataFrameReader that can be used to read data in as a DataFrame.
Returns: DataFrameReader
大概意思就是read方法返回的是一个DataFrameReader ,它可以用来读入数据并得到一个DataFrame.
源码如下:
 
def read(self):
        """
        Returns a :class:`DataFrameReader` that can be used to read data
        in as a :class:`DataFrame`.
		返回`DataFrameReader`类:可以用来读取数据且格式为DataFrame
        :return: :class:`DataFrameReader`
        """
        return DataFrameReader(self._wrapped)
从上面的源码中我们可以看出,SparkSession的read()方法实质上是调用的DataFrameReader()方法。
那下面我们就找到这个方法一探究竟
从导入语句from pyspark.sql.readwriter import DataFrameReader可以知道DataFrameReader的所在位置
DataFrameReader这个类包含了很多种方法,这里我们只分析我们用到的就可以了:
schema指定输入模式
format指定输入数据源格式。
options为基础数据源添加输入选项
源码如下:
class DataFrameReader(OptionUtils):
    """
    Interface used to load a :class:`DataFrame` from external storage systems
    (e.g. file systems, key-value stores, etc). Use :func:`spark.read`
    to access this.
    该接口用于从外部存储系统(例如文件系统、键值存储等等)加载一个`DataFrame`类。使用:函数:“spark.read” 来访问。
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值