Spark中的DataFrame是什么?以及如何构建DataFrame?(附案例)

DataFrame是Spark中的一种分布式数据集,类似数据库的二维表格,具有schema元信息。它可以通过RDD转换、读取外部数据(如JSON、Parquet、CSV)等方式构建。构建DataFrame时,可以使用Row、StructType或toDF方法,也可以通过Pandas转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Spark中的DataFrame是什么?

官方解释:

DataFrame = RDD[Person] - 泛型 + Schema + SQL操作 + 优化

官方原文:A DataFrame is a DataSet organized into named columns.

中文翻译:以列(列名,列类型,列值)的形式构成的分布式的数据集。

用大白话讲:

在 Spark 中,DataFrame 是一种以 RDD 为基础的分布式数据集,是一种特殊的RDD,是一个分布式的表,类似于传统数据库中的二维表格。DataFrame 与 RDD 的主要区别在于,前者带有 schema 元信息,即 DataFrame 所表示的二维表数据集的每一列都带有名称和类型。


2、DataFrame中的Schema是什么?

解释:其实就是结构表的列名与列类型。

Schema 的两种定义方式:

  • 使用 StructType 定义,是一个样例类,属性为 StructField 的数组
  • 使用 StructField 定义,同样是一个样例类,有四个属性,其中字段名称和类型为必填
from pyspark.sql.types import *
# 构建 Schema 对象
schema=StructType([
    StructField('name',StringType()),
    StructField('age',IntegerType())
])

3、DataFrame中的Row是什么?

解释:DataFrame中每条数据封装在Row中,Row表示每行数据。

如何构建Row对象?

from pyspark.sql import Row
# 构建 Row 对象
Row(value1, value2, value3, ...)

4、构建DataFrame的几种方式:

4.1 通过 RDD 转换 DataFrame

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹长大大

客官,赏个银子吧,别下次一定了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值