尝试使用 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'))
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'))