小编Des*_* me的帖子

如何检查 Spark 数据帧结构体数组是否包含特定值

我有一个具有以下架构的数据框

我的要求是过滤与任何地址数组元素中的给定字段(如城市)匹配的行。我可以访问单个字段,例如loyaltyMember.address[0].city,但我必须检查所有地址数组元素以查看是否存在任何匹配项。我如何在 spark sql 中实现这一点,我无法使用 array_contains 函数,因为数组是复杂类型

root
 |-- loyaltyMember: struct (nullable = true)
 |    |-- Name: string (nullable = true)
 |    |-- address: array (nullable = true)
 |    |    |-- element: struct (containsNull = true)
 |    |    |    |-- addressType: string (nullable = true)
 |    |    |    |-- city: string (nullable = true)
 |    |    |    |-- countryCode: string (nullable = true)
 |    |    |    |-- postalCode: string (nullable = true)
 |    |    |    |-- street: string …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql

5
推荐指数
1
解决办法
1万
查看次数

除了Unix Shell中特定单词或模式的一部分之外,如何替换文本中的所有下划线

我有一个包含大量下划线的文件,我必须用空字符串替换它们,除了属于特定字符串usr_mstr的那些字符串.我已经尝试过sed命令,它取代了下划线并排除了我提供的单词,但它也会在紧跟下划线后立即替换该字符!任何帮助将不胜感激..

echo "fname_sname_id_usr_mstr" | sed 's/_[^usr_mstr]//g'
Run Code Online (Sandbox Code Playgroud)

预期产量:

fnamesnameidusr_mstr
Run Code Online (Sandbox Code Playgroud)

实际产量:

fnamenamedusr_mstr
Run Code Online (Sandbox Code Playgroud)

(s并被i取代)

unix shell sed

2
推荐指数
2
解决办法
86
查看次数

标签 统计

apache-spark ×1

apache-spark-sql ×1

sed ×1

shell ×1

unix ×1