pyspark - 需要帮助在 pyspark 的 for 循环中附加数据帧
问题描述
我们在 where 子句中有需要应用于查询的条件列表
Conditions=[
Condition-1
Condition-2
...
Condition-n
]
我们有类似的查询
for condition in Conditions:
df = spark.sql("SELECT col1, col2 from table where" + condition)
但是我们想要一个最终数据帧,其中包含所有条件的结果如何做到这一点......我们的要求就是这样......
解决方案
如果您的条件是多个AND
s,您可以加入它们。
例子:
from pyspark.sql import SparkSession
if __name__ == "__main__":
spark = SparkSession.builder.getOrCreate()
data = [
{"a": 1, "b": 2, "c": 3},
{"a": 3, "b": 3, "c": 7},
{"a": 2, "b": 3, "c": 5},
]
conditions = [
"a > 2",
"b < 4",
"c > 5",
]
df = spark.createDataFrame(data)
df.createOrReplaceTempView("table")
df = spark.sql("SELECT a, b from table where {}".format(" AND ".join(conditions)))
df.show()
结果:
+---+---+
| a| b|
+---+---+
| 3| 3|
+---+---+
推荐阅读
- typescript - 在 ts-morph 中生成粗箭头函数属性赋值
- javascript - 在 JavaScript 中合并对象和子对象(不完全覆盖子对象)
- email - 电子邮件供应商使用 cypress 实现自动化
- laravel - 在 laravel 中更新认证系统的记录,没有错误消息
- c++ - 使用索引号,将该索引(一个字符)附加到 char 数组
- sql - 如何在 Firebird 中对数字进行四舍五入?
- azure - CORS - 在 Azure API 管理上启用了本地主机源,但仍然收到错误
- javascript - javascript中两个数组数字的平方
- r - 从向量中提取重复 n 次 (R) 的元素
- automated-tests - 如何使用 Python 在 Behave 中自动重新运行失败的场景