Spark之CASE...WHEN...THEN...的两种实现方式
在Spark中,dataframe是常用的数据格式,类似于数据库中的表。本文将介绍如何在dataframe中实现CASE…WHEN…THEN的两种方法。
一种是将dataframe看成数据库中的表,即使用createOrReplaceTempView()函数,之后利用数据库的CASE…WHTN…THEN进行操作。另一种方法是,利用pyspark.sql.functions的when().otherwise()函数。实例代码如下:
#载入包 from pyspark.sql import SparkSession from pyspark import SparkConf, SparkContext import pyspark.sql.functions as F #spark初始化 conf = SparkConf() APPNAME = 'spark_temporal_test' conf.set("spark.app.name", APPNAME) spark = SparkSession.builder.config(conf=conf).getOrCreate() #创建dataframe df = spark.createDataFrame([[1,'A'],[2,'B'],[3,'C'],[4,'C'],[5,'B'],[6,'A'],[7,'D'],\ [8,'A'],[9,'B'],[10,'C'],[11,'C'],[12,'B'],[13,'A'],[14,'D'],\ [15,'A'],[16,'B'],[17,'C'],[18,'C'],[19,'B'],[20,'']],['id','split']) df = df.withColumn('rand', F.rand(1)) #CASE WHEN的实现1 df = df.withColumn('mod_val_test1',F.when(df['rand'] <= 0.35,1).when(df['rand'] <= 0.7, 2).otherwise(3)) #CASE WHEN的实现2 df.createOrReplaceTempView("temp") df= spark.sql("""select *, case when rand <= %s then 1 when rand <= %s then 2 else 3 end as mod_val_test2 from temp"""%(0.35,0.7)) #输出,查看结果 print(df.show())
运行结果如下:
本次分享到此结束,欢迎大家交流与批评~~

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一脸懵逼学习Storm的搭建--(一个开源的分布式实时计算系统)
Storm的官方网址:http://storm.apache.org/index.html 1:集群部署的基本流程(基本套路): 集群部署的流程:下载安装包、解压安装包、修改配置文件、分发安装包、启动集群; 1:安装一个zookeeper集群,之前已经部署过,这里省略,贴一下步骤; 安装配置zooekeeper集群: 1.1:解压 tar -zxvf zookeeper-3.4.5.tar.gz 1.2:修改配置 cd /home/hadoop/zookeeper-3.4.5/conf/ cp zoo_sample.cfg zoo.cfg vim zoo.cfg 修改:dataDir=/home/hadoop/zookeeper-3.4.5/tmp 在最后添加: server.1=master:2888:3888 server.2=slaver1:2888:3888 server.3=slaver2:2888:3888 保存退出 然后创建一个tmp文件夹 mkdir /home/hadoop/zookeeper-3.4.5/tmp ...
- 下一篇
大数据真的在云计算上的快车上吗?
软件初创厂商AtScale公司去年年底发布了其年度大数据成熟度调查报告(以前称为“Hadoop成熟度调查”),显示商业智能大数据是首要任务,并正处于云计算的快速发展阶段,数据治理越来越受到关注。 该报告及其结果在最近ODPi用户顾问委员会(UAB)的会议上成为了一个主要的讨论话题,ODPi用户顾问委员会(UAB)是由来自汽车,技术和娱乐行业等使用Apache Hadoop和其他大数据技术的大型企业的代表组成。ODPi UAB十分认同报告中所提出的日益增长的数据治理问题。自助服务访问大数据和这种自助服务的治理确实触动了人们的心弦。行业专家讨论了让人们帮助推动自助服务访问政策的概念,这反映出越来越多的数据科学家是业务部门的一部分,而不是IT部门。该小组一致认为,仅持有治理和安全控制的IT目前的状态是不具成本效益的,而自治可能是一种帮助规模使用的策略。 关于云计算中大数据的主题,ODPi UAB在混合云模型中看到了他们的未来。虽然他们认为人们将在未来三年内看到云计算更多的应用,但他们将会在现有投资的基础上开展,而不是完全取代现有的投资。此外,ODPi UAB认为现有的中央处理与本地处理节点相...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7设置SWAP分区,小内存服务器的救世主
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,CentOS8安装Elasticsearch6.8.6