dataframe - 在 PySpark 中对多个单词使用 LIKE 运算符

标签 dataframe pyspark where sql-like

我有一个数据帧 dfPySpark ,如下图所示——

+-----+--------------------+-------+
|   ID|           customers|country|
+-----+--------------------+-------+
|56   |xyz Limited         |U.K.   |
|66   |ABC  Limited        |U.K.   |
|16   |Sons & Sons         |U.K.   |
|51   |TÜV GmbH            |Germany|
|23   |Mueller GmbH        |Germany|
|97   |Schneider AG        |Germany|
|69   |Sahm UG             |Austria|
+-----+--------------------+-------+

我只想保留那些 ID 的行从 5 或 6 开始。所以,我希望我的最终数据框看起来像这样 -
+-----+--------------------+-------+
|   ID|           customers|country|
+-----+--------------------+-------+
|56   |xyz Limited         |U.K.   |
|66   |ABC  Limited        |U.K.   |
|51   |TÜV GmbH            |Germany|
|69   |Sahm UG             |Austria|
+-----+--------------------+-------+

这可以通过多种方式实现,这不是问题。但是,我有兴趣了解如何使用 LIKE 来做到这一点。陈述。

我是否只对那些 ID 的行感兴趣?从 5 开始,它可以像这样轻松完成 -
df=df.where("ID like ('5%')")

我的问题:如何添加第二个语句,如 "ID like ('6%')"OR - |内部 bool 值 where条款?我想做如下所示的操作,但此代码出现错误。因此,简而言之,如何使用 LIKE and .where 使用多个 bool 语句这里 -
df=df.where("(ID like ('5%')) | (ID like ('6%'))")

最佳答案

你可以试试
df = df.where('ID like "5%" or ID like "6%"')

关于dataframe - 在 PySpark 中对多个单词使用 LIKE 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52889682/

相关文章:

sql - 带 WHERE 的 DISTINCT 子句

r - write.csv() 和 as.data.frame() 的问题

python - 使用 groupby 获取组中具有最大值的行

apache-spark - 在 PySpark 数据框中删除包含特定值的行

javascript - 使用多个或在 sequelize 中使用

mysql - 如何在sql查询中使用min作为条件

r - 如何删除数据框中包含 R 中某些单词的行?

python - 转换大型数据框 - 花费太长时间

python - 将 OneHotEncoder 应用于 SparkMlib 中的多个分类列

hive - 写入 Hive 表时使用多个 Parquet 文件(增量)