scala - Spark - 删除两个数组类型列之间的相交元素
问题描述
我有这样的数据框
+---------+--------------------+----------------------------+
| Name| rem1| quota |
+---------+--------------------+----------------------------+
|Customer_3|[258, 259, 260, 2...|[1, 2, 3, 4, 5, 6, 7,..500]|
|Customer_4|[18, 19, 20, 27, ...|[1, 2, 3, 4, 5, 6, 7,..500]|
|Customer_5|[16, 17, 51, 52, ...|[1, 2, 3, 4, 5, 6, 7,..500]|
|Customer_6|[6, 7, 8, 9, 10, ...|[1, 2, 3, 4, 5, 6, 7,..500]|
|Customer_7|[0, 30, 31, 32, 3...|[1, 2, 3, 4, 5, 6, 7,..500]|
我想从配额中删除 rem1 中的列表值并创建为一个新列。我试过了。
val dfleft = dfpci_remove2.withColumn("left",$"quota".filter($"rem1"))
<console>:123: error: value filter is not a member of org.apache.spark.sql.ColumnName
请指教。
解决方案
您可以通过filter
这种方式在列中使用 a,您可以编写udf
如下
val filterList = udf((a: Seq[Int], b: Seq[Int]) => a diff b)
df.withColumn("left", filterList($"rem1", $"quota") )
这应该会给你预期的结果。
希望这可以帮助!
推荐阅读
- javascript - 表单更改后如何显示确认消息?
- python - 用Python从字符串中提取整数
- android - 如何使用 AuthUI 将 Firebase 身份验证连接到现有后端/用户群
- python - 基于 Keras CNN 创建 scikit Confusion Matrix
- android - Android Studio 更新到 4.1.2 版本后死机
- xml - .Net Core 无法接收 XML 数据
- python - discord.py ways eval(string)
- sql - 将 COUNT(字符串)除以 BigQuery 中的条件
- node.js - 在 Chrome 上运行 puppeteer 无铬
- c++ - 如何排除通用知名本地 SID 的远程 Windows MailSlot 访问?