Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何使用列索引重命名重复的列?_Scala_Apache Spark - Fatal编程技术网

Scala 如何使用列索引重命名重复的列?

Scala 如何使用列索引重命名重复的列?,scala,apache-spark,Scala,Apache Spark,我有一个dataframe,它有两个同名列,因为第一个列(agreementID)包含一个值,所以我想重命名第二个列(agreementID),第二个列包含不同名称和不同记录的空值。我想在将来使用aggrementID作为密钥 请帮助了解如何使用列位置索引重命名列?这应该可以: val distinctColumns = Seq("name","agreementId","dupAgreementId") val df = df.toDF(distinctColumns:_*) 它仍然列出

我有一个dataframe,它有两个同名列,因为第一个列(agreementID)包含一个值,所以我想重命名第二个列(agreementID),第二个列包含不同名称和不同记录的空值。我想在将来使用aggrementID作为密钥

请帮助了解如何使用列位置索引重命名列?

这应该可以:

val distinctColumns = Seq("name","agreementId","dupAgreementId")
val df = df.toDF(distinctColumns:_*)

它仍然列出所有具有重复oneval columnIndex=3 val dupagreementid=“dupagreementid”val cols=df3.columns cols(ColumnsIndex)=newColumnName df3.toDF(cols)我要重命名的列的索引为3,但它给了我一个错误命令-2468580744805427:6:错误:类型不匹配;已找到:数组[String]必需:字符串df3.toDF(cols)^command-2468580744805427:5:错误:未找到:值columnsIndex cols(columnsIndex)=新列名^command-2468580744805427:5:错误:未找到:值NEWCLUMNNAME cols(columnsIndex)=新列名您确定它是index=3吗?看起来在屏幕截图上有3列,第3列有index=2,index=3不存在抱歉,这是一个示例。下面是我的列看起来像“agreementId--AgreementType--agreementId”,我想重命名第三列。第三列(agreementid)中的记录都是“null”,但第一列包含整数值。确定,它仍然是3列,因此第三列的索引为2(索引从0开始)。此外,您还可以使用.toDf重命名df,例如“val renamedDf=yourDf.toDf”(“agreementId”、“agreementType”、“yourNewName”)”
val columnIndex = 1
val newColumnName = "new_name"

val cols = df.columns
cols(columnsIndex) = newColumnName
df.toDF(cols)