PysparkNote101---DataFrame行转列

news/2024/7/4 13:23:31

  sql里经常会遇到行转列or列转行,如果数据框为{“A”,[1,2])},需要行转列为{(“A”,1),(“B”,2)}。话不多说,直接看代码。

import pyspark.sql.functions as F
from pyspark.sql import SparkSession
# 创建SparkSession对象,调用.builder类
# .appName("testapp")方法给应用程序一个名字;.getOrCreate()方法创建或着获取一个已经创建的SparkSession
spark = SparkSession.builder.appName("pysaprk").getOrCreate()
df = spark.createDataFrame(data=[("A", [1, 2]), ("B", [3, 4])],
                            schema=["id", "index"])
df.withColumn("index_sub",F.explode(F.col("index"))).show(truncate=False)
+---+------+---------+
|id |index |index_sub|
+---+------+---------+
|A  |[1, 2]|1        |
|A  |[1, 2]|2        |
|B  |[3, 4]|3        |
|B  |[3, 4]|4        |
+---+------+---------+

                        2020-09-18 于南京市江宁区九龙湖


http://www.niftyadmin.cn/n/972024.html

相关文章

Docker(一):入门教程

2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业。 但是,许多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?本文就来详细解释,帮助大家理解它,还带有简…

关于某些流负载技术

loadbandwith可以单独使用,用来静态指定接口的带宽负载,按照指定的比例进行等值ECMP路径分流RCR本地模式,支持动态调整,但是必须要依靠netstream的检查,周期性进行的,outbound方向的流,以及必须…

(转)linux内核虚拟文件系统浅析【转】

转自:https://www.cnblogs.com/woainilsr/p/3590716.html 转自http://hi.baidu.com/_kouu/item/4e9db87580328244ef1e53d0 ###### 虚拟文件系统(VFS)在我看来, "虚拟"二字主要有两层含义:1, 在同一个目录结构中, 可以挂载着若干种不同的文件系统. VFS隐藏…

Internal .Net Framework Data Provider error 6

在使用SQL Server 2005的database mirroring功能时遇到了Internal .Net Framework Data Provider error 6这个错误,发现没法立刻解决了,看完了KB article 944099后才知道要去自己去找ms的support要一个更新。至少到目前为止是这样的,遇到这个…

Spark001---yarn批量kill任务

— 删除所有ACCEPTED任务 for i in yarn application -list | grep -w ACCEPTED | awk {print $1} | grep application_; do yarn application -kill $i; done — 删除所有RUNNING任务 for i in yarn application -list | grep -w RUNNING | awk {print $1} | grep application…

Linux Core Dump【转】

转自:https://www.cnblogs.com/hazir/p/linxu_core_dump.html 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。我…

Android仿掌上英雄联盟首页,实现折叠效果

概述 仿掌上英雄联盟首页的demo详细 代码下载:http://www.demodashi.com/demo/10695.html 首页大概分为几个部分 状态栏 标题栏 轮播图 切换的Tab 资讯列表 资讯列表头部推荐 刷新控件 一、准备工作 用到的库: //recyclerview列表 compile com.and…

Hive07---新增列和变换列位置

需求很简单,新增一列,并且把新增的这一列放在某一列后面。 --- 新增一列,列名为c_time3 alter table ml.test add columns (c_time3 string comment 当前时间); --- 把c_time3放在city_id后面 alter table ml.test change c_time3 c_time…