【发布时间】:2021-03-01 19:31:32
【问题描述】:
我的要求是将所有列名的列表作为参数传递给dataframe.select(columns)
-
首先我使用
dataframe.columns来获取我的列表 所有的列。我将其存储为list1=(dataframe.columns) -
其次,我使用 .join 来转换我的 字符串中的列列表,例如 - (
strList1 = "','".join(list1)),它给了我以下输出col1','col2','col3','col4
如您所见,在字符串的开头和结尾处缺少一些单引号
-
为了纠正
strList1,我使用 f-string 格式如下 -strList2 = f"{strList1}'"这给了我以下输出'col1','col2','col3','col4'
主要问题:
当您将strList2 作为dataframe.select(strList2) 中的参数传递给我时,出现以下错误
Py4JJavaError:调用 o5813.select 时出错。 : org.apache.spark.sql.AnalysisException:无法解析 '反引号
col1','col2','col3','col4'反引号' 给定输入列:[ col1,col2,db.table.col4, db.table.col3];; '项目 ['col1','col2','col3','col4']
注意 - 在 col1 之前和 col4 之后有一个反引号
我不明白为什么 select 函数没有采用正确的字符串值/变量 (strList2)
【问题讨论】:
标签: python list apache-spark pyspark