尝试使用 Spark 子查询时出现不匹配的输入错误

mismatched input error when trying to use Spark subquery

PySpark 的新手,尝试获取对 运行 的查询,似乎应该 运行 但我遇到 EOF 问题,我不确定如何解决它..

我想要做的是找到 blah.table 中的所有行,其中 col“domainname”中的值与域列表中的值相匹配。然后我想从那些包含 ID 信息的行中获取 2 列,并进行另一次搜索以查找 blah.table 中包含这些 ID 对的所有行。

到目前为止我有:

df = spark.sql("select * from blah.table where id1,id2 in (select id1,id2 from blah.table where domainname in ('list.com','of.com','domains.com'))")

当我 运行 它时,我得到这个错误:

mismatched input ',' expecting {<EOF>, ';'}

如果我将查询分开,这似乎 运行 本身没问题:

df = spark.sql("select id1,id2 from blah.table where domainname in ('list.com','of.com','domains.com')")

我怎样才能使这个工作?

select * from blah.table
where (id1, id2) in (select id1,id2 from blah.table
                     where domainname in ('list.com','of.com','domains.com'))

或者,使用 EXISTS:

select * from blah.table t1
where EXISTS (select * from blah.table t2
              where t1.id1 = t2.id1 and t1.id2 = t2.id2
                and t2.domainname in ('list.com','of.com','domains.com'))