【问题标题】:How to write a function that runs certain SQL on certain columns in a PySpark dataframe?如何编写一个在 PySpark 数据框中的某些列上运行某些 SQL 的函数?
【发布时间】:2022-07-13 21:22:28
【问题描述】:
我写了一些代码并将其作为输出。左侧基本上是我正在使用的数据框的列,右侧是需要在该特定列上运行的 SQL 查询。
现在我想编写一个函数,在左侧的列上运行右侧的查询并显示输出。
第一张图基本上是另一个数据框的“Column”和“Query”列的值。我使用 .collect() 方法来检索这些值。
这似乎是一个简单的问题,但我仍然坚持。知道怎么做吗?
【问题讨论】:
标签:
python
apache-spark
pyspark
apache-spark-sql
【解决方案1】:
您可以将列名和查询放入字典:
dct = {'column_name': 'SELECT * FROM table WHERE {col} IS NULL'}
for k, v in dct.items():
q = v.format(col = k)
# spark.sql(q)
print(q)
输出:
SELECT * FROM table WHERE column_name IS NULL