gpt4 book ai didi

hadoop - 在 Spark SQL 中使用正则表达式函数从字符串中提取特定数字

转载 作者:可可西里 更新时间:2023-11-01 15:52:20 29 4
gpt4 key购买 nike

我在 mysql 中有一个表,它有 POST_ID 和相应的 INTEREST:

enter image description here

我使用以下正则表达式查询来选择包含 1,2,3 的兴趣。

SELECT * FROM INTEREST_POST where INTEREST REGEXP '(?=.*[[:<:]]1[[:>:]])(?=.*[[:<:]]3[[:>:]])(?=.*[[:<:]]2[[:>:]])';

我在 HDFS 中导入了表。但是,当我在 SparkSQL 中使用相同的查询时,它显示空记录。

如何在spark中使用这里的REGEXP函数来选择包含1,2,3的兴趣?

最佳答案

您正在使用的正则表达式需要稍微更改一下。您可以执行以下操作。

scala> val myDf2 = spark.sql("SELECT * FROM INTEREST_POST where INTEREST REGEXP '^[1-3](,[1-3])*$'")
myDf2: org.apache.spark.sql.DataFrame = [INTEREST_POST_ID: int, USER_POST_ID: int ... 1 more field]

scala> myDf2.show
+----------------+------------+--------+
|INTEREST_POST_ID|USER_POST_ID|INTEREST|
+----------------+------------+--------+
| 1| 1| 1,2,3|

关于hadoop - 在 Spark SQL 中使用正则表达式函数从字符串中提取特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47791631/

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