Python 如何使用IN运算符将多个值从panda df传递到pyspark SQL

Python 如何使用IN运算符将多个值从panda df传递到pyspark SQL,python,pandas,pyspark,apache-spark-sql,Python,Pandas,Pyspark,Apache Spark Sql,my df的输出返回三个不同的值,如下所示 print(df["ID"]) 返回三个ID1、2和3 我想在pyspark SQL中传递这些值 Query = 'select col 1 from temptable where ID IN (*need to pass the ID's here*) 关于如何实现这一点有什么想法吗?如果Query是字符串,则将df[“ID”]转换为字符串 比如说 ','.join( df['ID'].astype(str).to_lis

my df的输出返回三个不同的值,如下所示

print(df["ID"])
返回三个ID
1
2
3

我想在pyspark SQL中传递这些值

 Query = 'select col 1 from temptable where ID IN (*need to pass the ID's here*)

关于如何实现这一点有什么想法吗?

如果
Query
是字符串,则将
df[“ID”]
转换为字符串

比如说

','.join( df['ID'].astype(str).to_list() )
给出字符串

'1,2,3'
然后您可以在字符串中使用它,并使用ie.f-string进行查询


最小工作示例

import pandas as pd

df = pd.DataFrame({'ID':[1,2,3]})

text = ','.join( df['ID'].astype(str).to_list() )

Query = f'SELECT col 1 FROM temptable WHERE ID IN ({text})'

print(Query)
结果:

'SELECT col 1 FROM temptable WHERE ID IN (1,2,3)'

编辑:

这也适用于我

text = ','.join( df['ID'].astype(str) )


如果查询是字符串,则将
df[“ID”]
转换为字符串。例如,.join(df['ID'].astype(str).to_list())给出字符串
“1,2,3”
text = df['ID'].astype(str).str.cat(sep=',')
item = df[ ['ID'] ].astype(str).agg(','.join)  #, axis=0)
text = item['ID']
item = df[ ['ID'] ].astype(str).apply(lambda column: ','.join(column))  #, axis=0)
text = item['ID']