我这里有两个数据框:df1在这里
id name
11 abc
12 cdf
13 mmm
14 hhh
df2在这里:
id status
11 1
12 1
13 0
我需要的是df1
id匹配df2
id然后状态0我已过滤df1
中的完整行,如下所示
id name
11 abc
12 cdf
答案 0 :(得分:0)
您可以按ID加入它们,然后按状态值过滤并删除最后一个列
scanl (flip move)
逐行:
join =>按 val joined = df1.join(df2, "id")
.filter($"status" !== 0)
.drop("status")
加入两个dataFrame,结果将同时包含id
和名称status
(显然除columns
之外)
filter =>只保留与谓词匹配的行。在这种情况下,id column
不是0的那些
drop =>删除status
列,因为在最终输出中不需要它
输出是:
status
答案 1 :(得分:0)
我建议0
status
df2
列中的select
id
行df1
val tempDF2 = df2.filter($"status" =!= "0").select("id")
df1.join(tempDF2, Seq("id")).show(false)
+---+----+
|id |name|
+---+----+
|11 |abc |
|12 |cdf |
+---+----+
{1}}列内部加入与svn log
。 这比在加入后过滤后的性能更好。
awk
你应该输出
REPO_URL=https://<hostname>/path/to/repo
FILENAME=/path/to/file
svn log ${REPO_URL} -v --search "${FILENAME}" | \
awk -v var="^ [D] ${FILENAME}$" \
'/^r[0-9]+/{rev=$1}; \
$0 ~ var {print rev $0}'