用 Spark 处理复杂数据类型(Array、Map、JSON字符串等)
split 对列表进行切割,然后生产新的列表
from pyspark.sql.functions import split
# 对 key列按照 0-9之间的数字进行风格 重新命名为 s
df.select(split(df.key, '[0-9]+').alias('s'))
df1 = df.select(split(df.key, '[0-9]+').alias('s')) # 重新转移变量给df1
df1.withColumn("sd",df1["s"][0]).show() # 把 分割出来的s 提取出第[0]个重新成立新行
to_jso 把每一行全部转为,然后生产新的列表
from pyspark.sql.functions import to_json,struct
将每一行转化为json 并将行名,命名为wang df.select(to_json(struct([df["key"]])).alias("wang")).show()
- withColumn(colName, col)
- 通过为原数据框添加一个新列或替换已存在的同名列而返回一个新数据框。
colName是一个字符串, 为新列的名字。
col为这个新列的 Column 表达式。withColumn的第一个参数必须是已存在的列的名字,withColumn的第二个参数必须是含有列的表达式。如果不是它会报错AssertionError: col should be Column。 df.withColumn('page_count', df.page_count+100).select("app_key","page_count").take(2)[Row(app_key=u'2323423dsfds', page_count=110), Row(app_key=u'2323423dsfds', page_count=104)]df.withColumn('avg', df.page_count/df.duration).select("app_key","avg").take(2)[Row(app_key=u'2323423dsfds', avg=0.00012387736141220192), Row(app_key=u'2323423dsfds', avg=0.16666666666666666)]作者:焉知非鱼
链接:https://www.jianshu.com/p/604f5fd39ba6
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
用 Spark 处理复杂数据类型(Array、Map、JSON字符串等)的更多相关文章
- map json 字符串 对象之间的相互转化
1.对象与字符串之间的互转 将对象转换成为字符串 String str = JSON.toJSONString(infoDo); 字符串转换成为对象 InfoDo infoDo = JSON.pars ...
- [Swift]JSON字符串与字典(Dictionary)、数组(Array)之间的相互转换
1.JSON字符串与字典(Dictionary)之间的相互转换 import Foundation //JSON字符串转换为字典(Dictionary) func getDictionaryFromJ ...
- fastjson将json字符串转化成map的五种方法
package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObj ...
- JSON字符串转换为Map
本文是利用阿里巴巴封装的FastJSON来转换json字符串的.例子如下: package com.zkn.newlearn.json; import com.alibaba.fastjson.JSO ...
- [转]Json字符串和map和HashMap之间的转换
需要导入alibaba.fastJsonmaven中的依赖为 <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> ...
- JSON字符串和java对象的互转【json-lib】
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...
- Json-lib 进行java与json字符串转换之二
二.list和json字符串的互转 list-->>json字符串 public static void listToJSON(){ Student stu=new Student(); ...
- Java中JSON字符串与java对象的互换实例详解
这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...
- (转)Java中JSON字符串与java对象的互换实例详解
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...
- 转载-------- JSON 与 对象 、集合 之间的转换 JSON字符串和java对象的互转【json-lib】
转载--*--*---- 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,J ...
随机推荐
- form表单Get方式提交时,action中带参数传递不了
<form action="getPostServlet/getPost.do?param4=param4" method="get"> <i ...
- ES6 var,const , let三者区别
每天学一点,知识涨一张 var 默认是会变量提升的,变量可以修改: let 定义变量,变量可以修: const 定义必须有常量值,const的值一但写上不可更改:let 与const相同之处:1> ...
- ztree根据ztreeId【节点id】设置展开、选中、触发点击节点事件
有时候我们要默认选中某个节点,根据ztreeId // 这里的ztreeId就是ztree存放在页面的元素id,比如div的id // treeObj就是ztree对象 var treeObj = $ ...
- Reactor系列(四)subscribe订阅
#java# #reactor# #subcribe# #订阅# 视频讲解 :https://www.bilibili.com/video/av79117693/ FluxMonoTestCase.j ...
- 导入/导出 数据库/数据库表(wordpress做例子)
导入数据库: 1. 数据库层面: 没有wordpress的情况下,建立wordpress数据库 create database wordpress; 进入wordpress数据库 use wordpr ...
- MYSQL SHOW 用法
1.SHOW CHARACTER SET 显示所有可用的字符集 mysql> SHOW CHARACTER SET LIKE 'utf8'; +---------+--------------- ...
- SQLSever语句(增、删、改、查)一、增:有4种方法1.使用insert插入单行数据
SQL语句(增.删.改.查) 一.增:有4种方法 1.使用insert插入单行数据: 语法:insert [into] <表名> [列名] values <列值> 例:inse ...
- 适合新手的160个creakme(一)
先跑一下 直接使用这个字符串去check,发现提示信息有关键字符串 CODE:0042FB80 00000021 C Sorry , The serial is incorect ! 找到这个字符串的 ...
- Docker 常用命令和Dockerfile
Docker 简介 官方的解释为:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现 ...
- SpringBoot热启动让开发更便捷
在开发过程中,当写完一个功能我们需要运行应用程序测试,可能这个小功能中存在多个小bug,我们需要改正后重启服务器,这无形之中拖慢了开发的速度增加了开发时间,SpringBoot提供了spring-bo ...