gpt4 book ai didi

apache-spark - Pyspark - 如何进行不区分大小写的数据帧连接?

转载 作者:行者123 更新时间:2023-12-04 05:23:16 28 4
gpt4 key购买 nike

在 Pyspark 中是否有任何好看的代码来执行不区分大小写的连接?
就像是:

df3 = df1.join(df2, 
["col1", "col2", "col3"],
"left_outer",
"case-insensitive")

或者您对此有什么工作解决方案?

最佳答案

这并不完全优雅,但您可以创建这些列的新小写版本,纯粹是为了加入。

import pyspark.sql.functions as F
df1_l = df1 \
.withColumn("col1_l", F.lower(df1.col1)) \
.withColumn("col2_l", F.lower(df1.col2)) \
.withColumn("col3_l"), F.lower(df1.col3)

df2_l = df2 \
.withColumn("col1_l", F.lower(df2.col1)) \
.withColumn("col2_l", F.lower(df2.col2)) \
.withColumn("col3_l"), F.lower(df2.col3)

df3 = df1_l.join(df2_l,
["col1_l", "col2_l", "col3_l"],
"left_outer")

您也可以尝试在连接谓词中进行相同的转换,例如:
df3 = df1.join(df2, 
(F.lower(df1.col1) == F.lower(df2.col1))
& (F.lower(df1.col2) == F.lower(df2.col2))
& (F.lower(df1.col3) == F.lower(df2.col3))
"left_outer")

关于apache-spark - Pyspark - 如何进行不区分大小写的数据帧连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40244425/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com