IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> PySpark的4种DataFrame创建方式 -> 正文阅读

[大数据]PySpark的4种DataFrame创建方式

使用pyspark.sql.SparkSession创建DataFrame

数据准备

data/score.txt

孙悟空,语文,87
孙悟空,数学,95
孙悟空,英语,68
大海,语文,94
大海,数学,56
大海,英语,84
宋宋,语文,64
宋宋,数学,86
宋宋,英语,84
婷婷,语文,65
婷婷,数学,85
婷婷,英语,78

读取本地文件

# coding:utf8
from pyspark.sql import SparkSession

if __name__ == '__main__':
    # 构建执行环境入口对象
    spark = SparkSession.builder.appName("test").master("local[*]").getOrCreate()
    # 通过SparkSession对象获取SparkContext对象
    sc = spark.sparkContext

    # 读取本地文件,并且转换数据类型
    rdd = (sc.textFile("../data/score.txt")
           .map(lambda x: x.split(','))
           .map(lambda x: (x[0], x[1], int(x[2]))))

1. 基于RDD和python列表创建

# 构建DataFrame对象
df = spark.createDataFrame(rdd, schema=['name', 'subject', 'score'])

2. 基于表结构描述对象StructType创建

from pyspark.sql.types import StringType, IntegerType, StructType, StructField

# 表结构描述对象, StructType,可以传入一个表字段描述对象列表,也可以使用链式添加。
# StructField:表字段描述对象,三个参数分别为:字段名,字段类型,是否允许为空
schema = StructType([
      StructField('name', StringType(), nullable=True),
      StructField('subject', StringType(), nullable=False),
      StructField('score', IntegerType(), nullable=True)
])

# 构建DataFrame对象
df = spark.createDataFrame(rdd, schema=schema)

3. toDF的方式创建

方式一、toDF( list )

df = rdd.toDF(['name', 'subject', 'score'])

方式二、toDF( StructType )

# toDF的方式2 通过StructType来构建,链式添加
schema = (StructType()
           .add("name", StringType(), nullable=False)
           .add("subject", StringType(), nullable=True)
           .add("score", IntegerType(), nullable=False)
           )
df1 = rdd.toDF(schema)

4. 基于Pandas的DataFrame创建

import pandas as pd

# 基于Pandas的DataFrame构建DataFrame
pd_df = pd.DataFrame({
    "id": [1, 2, 3]
    , "name": ['坤坤', '鸡哥', '倒戈']
    , "age": [12, 14, 21]
})

df = spark.createDataFrame(pd_df)
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-04 00:01:46  更:2022-06-04 00:03:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 23:50:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码