可以通过字符串格式化来实现使用类似 SQL 的 IN 子句过滤 Pyspark DataFrame。
在给定的示例中:
sc = SparkContext() sqlc = SQLContext(sc) df = sqlc.sql('SELECT * from my_df WHERE field1 IN a')
传递给 SQLContext 的字符串在以下位置进行评估SQL 环境并且不捕获闭包。要显式传递变量,请使用字符串格式:
df.registerTempTable("df") sqlContext.sql("SELECT * FROM df WHERE v IN {0}".format(("foo", "bar"))).count()
或者,DataFrame DSL 为动态查询提供更好的选项:
from pyspark.sql.functions import col df.where(col("v").isin({"foo", "bar"})).count()
以上是如何使用 IN 子句有效过滤 PySpark DataFrame?的详细内容。更多信息请关注PHP中文网其他相关文章!