用 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 ...
 
随机推荐
- Vscode中打开、新建内部终端快捷键方法
			
设置->键盘快捷方式->搜索集成终端->切换集成终端/新建集成终端 Windows 电脑 组合键 说明 Ctrl + ~ 打开默认终端 Ctrl + Shift + ~ 新建新的终端 ...
 - Jmeter综合运用 之 接口测试
			
Jmeter用的最多的就是做接口和性能测试了,着实比较好用,今天给大家分享下如何利用Jmeter做接口测试. 在做接口测试之前,我们起码需要了解: 1.接口涉及的业务 2.接口的基本信息:访问地址.传 ...
 - Windows核心编程随笔
			
最近在学习Windows底层原理,准备写个系列文章分享给大家,Michael Li(微软实习期间的Mentor,为人超好)在知乎回答过一些关于学习Windows原理的书籍推荐,大家可以拜读其中一本来入 ...
 - 【AMAD】django-reversion -- 为django的model实例带来版本控制
			
动机 简介 个人评分 动机 有时候数据表的数据也需要版本控制.比如论坛的帖子,作者是可以改动的,但是你想要留下每个改动的版本. 简介 django-reversion1的特点: 可以回滚一个insta ...
 - Introduction - Welcome
			
摘要: 本文是吴恩达 (Andrew Ng)老师<机器学习>课程,第一章<绪论:初识机器学习>中第1课时<欢迎参加机器学习课程>的视频原文字幕.为本人在视频学习过程 ...
 - jquery防止快速点击
			
jquery防止快速点击(推荐第三种方式) //全站ajax加载提示 (function ($) { var str = '<div class="ajax-status" ...
 - 冲刺Noip2017模拟赛6 解题报告——五十岚芒果酱
			
1.ksum(ksum) [问题描述] Peter喜欢玩数组.NOIP这天,他从Jason手里得到了大小为n的一个正整数 数组. Peter求出了这个数组的所有子段和,并将这n(n+)/2个数降序排序 ...
 - poj2406(求字符串的周期,kmp算法next数组的应用)
			
题目链接:https://vjudge.net/problem/POJ-2406 题意:求出给定字符串的周期,和poj1961类似. 思路:直接利用next数组的定义即可,当没有周期时,周期即为1. ...
 - iostream重载__int128
			
Normal (Naive)写法,用 string(char* ) std::ostream& operator <<(std::ostream&out,const __i ...
 - java日志框架系列(2):logback框架详解
			
1.logback介绍 1.什么是logback Logback 为取代 log4j 而生. Logback 由 log4j 的创立者 Ceki Gülcü设计.以十多年设计工业级记录系统的经验为基础 ...