如何编写一个在 PySpark 数据框中的某些列上运行某些 SQL 的函数?

分享于2022年07月17日 apache-spark apache-spark-sql pyspark python 问答
【问题标题】:如何编写一个在 PySpark 数据框中的某些列上运行某些 SQL 的函数?(How to write a function that runs certain SQL on certain columns in a PySpark dataframe?)
【发布时间】:2022-07-13 21:22:28
【问题描述】:

How to write a function that runs certain SQL on certain columns in a PySpark dataframe?

我写了一些代码并将其作为输出。左侧基本上是我正在使用的数据框的列,右侧是需要在该特定列上运行的 SQL 查询。

现在我想编写一个函数,在左侧的列上运行右侧的查询并显示输出。

第一张图基本上是另一个数据框的“Column”和“Query”列的值。我使用 .collect() 方法来检索这些值。

How to write a function that runs certain SQL on certain columns in a PySpark dataframe?

这似乎是一个简单的问题,但我仍然坚持。知道怎么做吗?


【解决方案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