我有一个特殊的问题。我试图使用自动生成的字符串从数据帧中选择一些列。如果我直接传递select,则select可以正常工作,如果我在字符串中放入相同的表达式并将字符串传递给select,则会失败,并出现错误“无法解析给定列列表的列名”。它以某种方式向字符串添加反勾号,并尝试将完整字符串作为列名查找(而不是计算字符串表达式并将其用作列名)
下面的例子:
这是可行的,historyJoinedDF是一个数据帧,它是两个数据帧之间外部连接的输出:
historyJoinedDF.select(
currentUnmatchedDF("sessiondetail_sessionid").as("sessiondetail_sessionid")
).show()
这不起作用:
val test = """currentUnmatchedDF("sessiondetail_sessionid").as("sessiondetail_sessionid")"""
historyJoinedDF.select(
test
.show()
失败:
cannot resolve '`currentUnmatchedDF("sessiondetail_sessionid").as("sessiondetail_sessionid")`' given input columns:
不确定这是否重要,但我的数据帧是具有相同模式的两个数据帧之间的完全外部连接的输出(因此需要用DF名称限定列名)。
编辑:添加当前未匹配的DF. show的输出(false)
select方法将列名作为参数。所以你应该这样做
someDf.select("sessiondetail_sessionid")
或者,如果你想得到其他df的列,并在一些df中选择它们,你应该使用
import org.apache.spark.sql.functions.col
someDf.select(otherDf.columns.map(col): _*) //: _* transforms collection to varag
但您试图获取具有文字名称的列
currentUnmatchedDF("sessiondetail_sessionid").as("sessiondetail_sessionid")
从java中字符串的值创建对现有对象的引用 在我的项目中,有很多按钮(目前大约70个);每个按钮都会在数据库的jlabel中提出一个问题。现在,根据用户的选择,每个按钮(swings的jButton)将被分配颜色,这取决于用户是否想查看问题,或者他是否标记了问题的答案。 一种方法是为每个jbutton的actionperformed编码,并在每个jbutton中使用if-else来获得确切的颜色,
这篇文章给出了一个关于如何更改列名的很好的概述。如何在PySpark中更改dataframe列名? 不过,我需要一些更多的/稍微调整,我没有能力做。有人能帮我删除所有colnames中的空格吗?它需要例如连接命令,系统方法减少了处理30列的工作量。我认为regex和UDF的组合最好。 示例:root--客户机:string(nullable=true)--分支号:string(nullable=t
问题内容: 我认为这可能是一个非常简单的解决方案,但我不太确定。 我正在尝试创建一个字符数组,通过增加数组的特定索引并将它们放在最后的字符串中来对它们进行排序。 我已经做到了这一点(通过将结果打印到控制台进行验证。“ aaaaaaaa”到“ aaaaaaab”,依此类推。但是,我的新版本代码通过ASCII值33-126排序。“!”为“〜” 现在,我想做的一件事是在main方法中调用该字符串,以便我
问题内容: 在注意到一个应用程序倾向于由于不正确的字符串值错误而丢弃随机电子邮件之后,我经过了并切换了许多文本列以使用列字符集和默认列归类(),以便它可以接受它们。这修复了大多数错误,并使应用程序在遇到非拉丁电子邮件时也停止出现sql错误。 尽管如此,某些电子邮件仍然导致程序遇到不正确的字符串值错误: 内容列是使用列字符集和列排序规则的数据类型。在此列中没有可切换的标志。 请记住,除非绝对必要,否
问题内容: 我有一张桌子需要处理各种字符。字符包括Ø,®等。 我已将表设置为utf-8作为默认排序规则,所有列均使用表默认值,但是当我尝试插入这些字符时,我得到了错误:错误的字符串值:’\ xEF \ xBF \ xBD’对应于’buyerName’列第1行 我的连接字符串定义为 我不知道为什么我仍然看到错误。.net连接器或MySQL设置是否遗漏了任何内容? - 编辑 - 我的(新)C#插入语句
我有以下小消息: 我尝试了这个错误: