首页 > 其他分享 >DataFrame的代码构建-基于RDD方式

DataFrame的代码构建-基于RDD方式

时间:2023-09-30 19:22:24浏览次数:28  
标签:__ df DataFrame RDD 构建 sql spark

方式一:

# coding:utf8

from pyspark.sql import SparkSession


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

    # 基于RDD转换成DataFrame
    rdd = sc.textFile("../data/input/sql/people.txt").\
        map(lambda x: x.split(",")).\
        map(lambda x: (x[0], int(x[1])))

    # 构建DataFrame对象
    # 参数1 被转换的RDD
    # 参数2 指定列名, 通过list的形式指定, 按照顺序依次提供字符串名称即可
    df = spark.createDataFrame(rdd, schema=['name', 'age'])

    # 打印DataFrame的表结构
    df.printSchema()

    # 打印df中的数据
    # 参数1 表示 展示出多少条数据, 默认不传的话是20
    # 参数2 表示是否对列进行截断, 如果列的数据长度超过20个字符串长度, 后续的内容不显示以...代替
    # 如果给False 表示不阶段全部显示, 默认是True
    df.show(20, False)

    # 将DF对象转换成临时视图表, 可供sql语句查询
    df.createOrReplaceTempView("people")
    spark.sql("SELECT * FROM people WHERE age < 30").show()

方式二:

# coding:utf8

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


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

    # 基于RDD转换成DataFrame
    rdd = sc.textFile("../data/input/sql/people.txt").\
        map(lambda x: x.split(",")).\
        map(lambda x: (x[0], int(x[1])))

    # 构建表结构的描述对象: StructType对象
    schema = StructType().add("name", StringType(), nullable=True).\
        add("age", IntegerType(), nullable=False)

    # 基于StructType对象去构建RDD到DF的转换
    df = spark.createDataFrame(rdd, schema=schema)

    df.printSchema()
    df.show()

 

标签:__,df,DataFrame,RDD,构建,sql,spark
From: https://www.cnblogs.com/daitu66/p/17738127.html

相关文章

  • jenkins教程:解决nodejs前端构建时报错(EMFILE: too many open files)
    修改系统最大打开文件数临时生效ulimit-n65535永久生效vim/etc/security/limits.conf*softnofile65535*hardnofile65535#修改单个进程最大打开文件数*softnprocunlimited*hardnprocunlimited查看修改结果ulimit-n配置完成后,restartjenkins即可生效。或者临时......
  • kitti彩色地图拼接<三>、构建彩色地图
     真值数据和rawdata的对应部分真值的轨迹和rawdata的轨迹相同,可以使用真值的数据进行轨迹评估。(kitti总共有编号为00~20的21个数据集序列,其中只有00~10序列公开了真值,序列11~20仅用来做为算法评估使用): Nr.SequencenameStartEnd---------------------------......
  • Go每日一库之129:promu(Prometheus构建发布工具)
    众所周知,Go语言中打包命令是gobuild。在项目中,你可以单独使用gobuild命令对项目进行编译打包,也可以根据自己的需要,在该命令后加各种参数。prometheus官方为了统一项目(包括prometheus、alertmanager和各种官方的exporter)的编译和打包,开发了promu工具。官方对promu工具......
  • 构建国际化的海外版外送商城系统:代码示例与实现
    在快节奏的现代生活中,外送服务变得越来越受欢迎,因此开发一个高效便捷的外送商城系统至关重要。本文将通过代码示例来介绍如何构建一个简单的外送商城系统,以展示其核心功能和工作原理。#导入所需的库importrandom#模拟商店数据shops=[{"name":"餐厅A","menu":{"汉......
  • ChatGPT 重磅更新可进行实时网络搜索;OpenAI 将构建新的“AI 硬件”丨RTE开发者日报 Vo
    开发者朋友们大家好:这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,欢迎大家留......
  • 贝叶斯线性回归和多元线性回归构建工资预测模型|附代码数据
    原文链接:http://tecdat.cn/?p=21641最近我们被客户要求撰写关于贝叶斯线性回归的研究报告,包括一些图形和统计输出。在劳动经济学领域,收入和工资的研究为从性别歧视到高等教育等问题提供了见解工资模型在本文中,我们将分析横断面工资数据,以期在实践中使用贝叶斯方法,如BIC和贝叶......
  • AI算法+视频技术助力构建智慧城管解决方案,实现城市管理精细化
    一、背景分析物联网、大数据、移动互联网等技术的日新月异,城市管理对信息资源需求的日益提升,广大市民对政府服务新的诉求,智慧城管正面临千载难逢的发展机遇。发展历程:1)数字城管:城市管理机制的变革——沟通及时、责任到位、处置及时、运转高效;九大标准子系统:无线数据采集、呼叫中心......
  • Dockerfile 语法详解:构建定制化容器镜像的基石
    Docker已经成为现代应用程序开发和部署的关键工具之一。在Docker的世界中,Dockerfile是一个至关重要的文件,它定义了如何构建容器镜像的步骤和配置。本文将深入探讨Dockerfile的语法,为您提供构建定制化容器镜像的基础知识。Dockerfile的基本结构Dockerfile是一个纯文本文件,其......
  • 使用 Sealos 构建低成本、高效能的私有云
    这个时候谈论私有云似乎有点反直觉?大部分人认知不是上云是大趋势嘛?我也比较认可上云,不过私有云也是云,今天给大家带来一个新的选择——用云,只需一个Sealos就够了。看看我们怎么做到更低的成本,更高的稳定性和性能的。PS:我们从不脱离场景谈优势,不同场景选不同的云肯定是硬道理......
  • 使用ChatGPT快速构建优质网站模板的方法
    随着人工智能技术的不断发展,ChatGPT作为一种自然语言处理工具,正在被越来越多的领域所应用。其中,如何使用ChatGPT快速构建一个网站模板成为了许多开发者和企业关心的热点问题。本文将重点介绍如何使用ChatGPT快速构建一个网站模板,并突出其中的重点词汇或短语。确定网站目标和定位在......