当前位置: 首页 > 知识库问答 >
问题:

如何将列表的所有内容转换为单个字符串,以作为参数在dataframe.select()中传递?

贺高杰
2023-03-14

我的要求是在<code>dataframe中作为参数传递所有列名的列表。select(columns)</code>

>

  • 首先,我使用dataframe.columns获取所有列的列表。我将其存储为list1=(dataframe.columns)

    其次,我正在使用。join将我的列列表转换为类似- (strList1 = " ','"的字符串。join(list1)),它给出了以下输出

    第1列、第2列、第3列、第4列

    如您所见,开头缺少一些单引号

    要纠正strList1,我使用如下的f-string格式-strList2=f“{strList1}'”这将给出以下输出

    “col1”、“l2”、“l3”、“l4”

    主要问题:

    当您将strList2作为参数传递到dataframe.select(strList2)时,会出现以下错误

    Py4JJavaError:调用o5813时出错,select .:org . Apache . spark . SQL . analysis异常:无法解析给定输入列的' backquotecol1 ',' col2 ',' col3 ',' col 4 ' back quote:[col 1,col2,db.table.col4,db . table . col 3];; '项目['列1 ','列2 ','列3 ','列4']

    注意-在col1之前和col4之后有一个反引号

    我不明白为什么选择函数没有采用适当的字符串值/变量(strList2

  • 共有1个答案

    燕雨石
    2023-03-14

    您正在将字符串< code >“' col 1 ',' col2 ',' col3 ',' col 4 '”传递给< code>df.select。没有名为< code >“' col 1 ',' col2 ',' col3 ',' col 4 '”的列,因此< code > df . select(' col 1 ',' col2 ',' col3 ',' col 4 ')将导致错误。

    您需要做的不是传递该字符串,而是将列名的字符串列表传递给< code>df.select。< code>df.columns已经是那个列表(例如< code>['col1 ',' col2']),所以您可以简单地执行< code > df . select(df . columns)。

    事实上,如果您只想显示所有列,您可以执行< code>df.select('*')。

     类似资料:
    • 问题内容: 在Python中,我想将列表中的所有字符串转换为整数。 所以,如果我有: 我该如何做: 问题答案: 使用功能(在Python 2.x中): 在Python 3中,您需要将结果从转换为列表:

    • 问题内容: 如何使用Python将列表转换为字符串? 问题答案: 通过使用 或者,如果列表是整数,则在连接元素之前将其转换。

    • 问题内容: 我有一个清单说: 如何在不触及字符串的情况下转换预期的数字? 感谢您的帮助。 问题答案:

    • 问题内容: 我读了这篇文章,但我没有关注。我已经看到了,但还没有看到将转换为使用的正确示例。 要检索的内容为,使用推荐的还是有一个更可取的方法? 我正在考虑这个示例,并扩展并利用Decorator在运行时增加功能。是否有兴趣将其作为使用?的更好解决方案? 问题答案: A 可以读取任何内容,最后得到a 。 但是,使用a 更简单: 对于 产量,字节总数。 评论的答案:使用ByteArrayOutput

    • 本文向大家介绍在Java中将字符列表转换为字符串,包括了在Java中将字符列表转换为字符串的使用技巧和注意事项,需要的朋友参考一下 假设以下是我们的字符列表- 将字符列表转换为字符串- 示例 以下是在Java中将字符列表转换为字符串的程序- 输出结果

    • 问题内容: 我需要将String []转换为JsonArray,但我不知道如何。我是android开发的新手,我想在MySQL数据库中插入通话记录详细信息。因此,从android方面,我得到一个字符串,但是我不知道如何将该字符串转换为Jsonarray。请帮助解决这个问题,谢谢 这是我的Java代码....... 问题答案: 试试这个,