如何从Python中的变量选择pySpark数据框中的列

5

I have a pySpark dataframe in python as -

from pyspark.sql.functions import col
dataset = sqlContext.range(0, 100).select((col("id") % 3).alias("key"))

列名为key,我希望能使用一个变量选择这一列。

myvar = "key"

现在,我想使用myvar变量在select语句中选择这一列。

我尝试了以下代码:

dataset.createOrReplaceTempView("dataset")
spark.sql(" select $myvar from dataset ").show

但是它返回了一个错误

在输入“select $”时没有可行的替代方法(第1行,位置8)

我该如何在pySpark中实现这一点?

请注意,未来可能会有不同的列,并且我想传递多个变量或者可能是一个listSELECT子句中。


我唯一能建议你的是从数据框中收集数据并存储在你的变量中。 - Manu Gupta
只需使用 select。您也可以传递列表。在此处阅读更多信息:https://dev59.com/QlMI5IYBdhLWcg3w4Po_。 - pault
2个回答

4

dataset.select(myVar)会根据变量选择单个列

.select也可以接受一个列表dataset.select([myVar, mySecondVar])


0
如果你的变量是一个Python列表,你也可以这样做:
columns = ['column_a', 'column_b', 'column_c']

#select the list of columns
df_pyspark.select(*columns).show()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接