pyspark 基本api使用说明(一)

摘要:
2) ArraySchema的DataFrame直接登录到es中,这需要额外的注意

1.Array Schema转换到Sting Schema ——array_join()方法

使用案例:

原始数据如下图所示:

df.show()

pyspark 基本api使用说明(一)第1张

df1 = df.select(array_join(df3.user_array, ",").alias("joined"), 'umid', 'user_array')

df1.show()

pyspark 基本api使用说明(一)第2张

 2.Sting Schema 转换成 Array Schema

其中,主要有以下三种方式:

2.1 split()方法

2.2 Array()方法

2.3 自定义udf函数(灵活,但是效率低)

案例:

原始数据如上图所示,

df2 = df1.withColumn('array1', array('joined')).withColumn('array2', split(col('joined'), ','))

df2.show()

pyspark 基本api使用说明(一)第3张

 3.针对Array[Array]Schema,变换成Array[String]的方法——flatten()方法

pyspark中flatten()方法,实现的功能类似于下面的案例:

[1,3,[4,5], [7,9.9]] --->(flatten)----->[1,3,4,5,7,9,9]

4.字符串聚合操作——collect_set collect_list

这两个都是针对String类型的聚合操作,类似于数值类型的sum、avg等,使用案例为

df = spark.createDataFrame([
("a", "code1", "name1"),
("a", "code1", "name1"),
("a", "code2", "name2"),
], ["id", "code", "name"])

pyspark 基本api使用说明(一)第4张

df.groupBy('id').agg(collect_set('code').alias('collect_set_test'), collect_list('name').alias('collect_list_test')

pyspark 基本api使用说明(一)第5张

 备注:

1)collect_set和collect_list的区别是:collect_set实现去重的功能。

2)针对Array Schema的DataFrame直接落地es中,需要额外注意(将在下节中,spark数据库连接中进行特殊说明)

免责声明:文章转载自《pyspark 基本api使用说明(一)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python 网络通信协议(互联网协议)Swagger发布服务器时错误 500 : { "Message": "An error has occurred." }下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

spring-装配bean

1.spring配置的可选方案 spring提供了三种装配bean的机制: 在xml中显式配置 在java中进行显式配置 隐式的bean发现机制和自动转配 三种方式在适当的场合使用,当然你可以选择自己喜欢的方式转配bean。 2.自动化装配bean spring从两个角度实现自动化装配 组件扫描(component scanning)spring会自...

一个 XSD 实例

一个 XSD 实例 本节会为您演示如何编写一个 XML Schema。您还将学习到编写 schema 的不同方法。 XML 文档 让我们看看这个名为 "shiporder.xml" 的 XML 文档: <?xml version="1.0" encoding="ISO-8859-1"?> <shiporder orderid="88...

Java高级框架-----Spring(一)

一: 1.Spring几大核心功能: IOC/DI 控制反转/依赖注入 AOP 面向切面编程 声明式事务 2.Spring 框架的的runtime 2.1test:Spring提供测试功能 2.2Core Container:核心容器。Spring启动最基本条件 2.2.1Beans:Spring负责创建类对象并管理对象 2.2.2Core:核心类 2.2...

ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第八天(非原创)

文章大纲 一、课程介绍二、Solr基本介绍三、ssm整合Solr四、项目源码与资料下载五、参考文章 一、课程介绍 一共14天课程(1)第一天:电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。(2)第二天:框架的整合。后台管理商品列表的实现。分页插件。(3)第三天:后台管理。商品添加。商品类目的选择、图片上传、富文本编辑器的使用。(4)第四天:...

spring mvc 的jpa JpaRepository数据层 访问方式汇总

本文转载:http://perfy315.iteye.com/blog/1460226和http://jishiweili.iteye.com/blog/2088265 AppleFramework在数据访问控制层采用了Spring Data作为这一层的解决方案,下面就对Spring Data相关知识作一个较为详细的描述。1.Spring Data所解决的...

( 三十一 )、 SpringBoot项目启动自动执行sql脚本

( 三十一 )、 SpringBoot项目启动自动执行sql脚本 方式一:在配置文件中配置相关属性 1、关键属性: 1、spring.datasource.schema: 表初始化语句,默认加载schema.sql,看getScripts源码,它还会加载schema-${platform}.sql文件,其中platform就是spring.datasou...