Pyspark中pyspark.sql.functions常用方法(4)

文章目录

  • [pyspark sql functions](#pyspark sql functions)
    • [forall 判断array是否满足all](#forall 判断array是否满足all)
    • [filter 过滤](#filter 过滤)
    • [zip_with 数组合并](#zip_with 数组合并)

pyspark sql functions

forall 判断array是否满足all

复制代码
df = spark.createDataFrame(
    [(1, ["bar"]), (2, ["foo", "bar"]), (3, ["foobar", "foo"])],
    ("key", "values")
)
df.show()
+---+-------------+
|key|       values|
+---+-------------+
|  1|        [bar]|
|  2|   [foo, bar]|
|  3|[foobar, foo]|
+---+-------------+
df.select(forall("values", lambda x: x.rlike("foo")).alias("all_foo")).show()
+-------+
|all_foo|
+-------+
|  false|
|  false|
|   true|
+-------+

filter 过滤

复制代码
df = spark.createDataFrame([([1, None, 2, 3],), ([4, 5, None, 4],)], ['data'])
df.show()
+---------------+
|           data|
+---------------+
|[1, null, 2, 3]|
|[4, 5, null, 4]|
+---------------+
df.select(fs.filter(df.data,lambda x: x>1).alias('filter')).show()
+---------+
|   filter|
+---------+
|   [2, 3]|
|[4, 5, 4]|
+---------+

zip_with 数组合并

使用函数将两个给定的数组按元素合并为一个数组。如果一个数组较短,则在应用函数之前,在末尾附加null以匹配较长数组的长度。

复制代码
df.select(fs.zip_with("xs", "ys", lambda x, y: x ** y).alias("powers")).show(truncate=False)
+---------------------------+
|powers                     |
+---------------------------+
|[1.0, 9.0, 625.0, 262144.0]|
+---------------------------+
相关推荐
CoderYanger2 天前
优选算法-优先级队列(堆):75.数据流中的第K大元素
java·开发语言·算法·leetcode·职场和发展·1024程序员节
CoderYanger2 天前
C.滑动窗口——1423. 可获得的最大点数
java·开发语言·算法·leetcode·1024程序员节
CoderYanger2 天前
优选算法-队列+宽搜(BFS):72.二叉树的最大宽度
java·开发语言·算法·leetcode·职场和发展·宽度优先·1024程序员节
CoderYanger3 天前
优选算法-字符串:63.二进制求和
java·开发语言·算法·leetcode·职场和发展·1024程序员节
CoderYanger3 天前
优选算法-栈:67.基本计算器Ⅱ
java·开发语言·算法·leetcode·职场和发展·1024程序员节
讨厌下雨的天空3 天前
网络基础
网络·1024程序员节
金融小师妹4 天前
基于NLP语义解析的联储政策信号:强化学习框架下的12月降息概率回升动态建模
大数据·人工智能·深度学习·1024程序员节
mjhcsp5 天前
C++ 动态规划(Dynamic Programming)详解:从理论到实战
c++·动态规划·1024程序员节
金融小师妹6 天前
基于机器学习框架的上周行情复盘:非农数据与美联储政策信号的AI驱动解析
大数据·人工智能·深度学习·1024程序员节
渣渣盟6 天前
Flink分布式文件Sink实战解析
分布式·flink·scala·1024程序员节