0
以下是我用于列名前缀的代码。我想排除一个或多个主键列。我的primaryKeys是一个字符串数组,它可能包含一个或多个主键字段。前缀除主键列以外的所有火花数据帧列
val primaryKeys = args(2).split("-")
val prefix = "w1."
val renamedColumns = df.columns.map(c=> df(c).as(s"$prefix$c"))
val dfNew = df.select(renamedColumns: _*)
val prefix2 = "w2."
val renamedColumns2 = df2.columns.map(c2=> df2(c2).as(s"$prefix2$c2"))
val df2New = df2.select(renamedColumns2: _*)
If it is just one column i was able to rename using withColumnRenamed but i am unable to do it if i have multiple primary columns.
我不能做这样的事情
for (primaryKey <- primaryKeys) {
dfNew.withColumnRenamed("$PREFIX1"+s"${primaryKey}",s"$primaryKey").toDF()
}
有人能帮忙吗?
感谢狮子座。我是一名Java开发人员,也是Scala的新手。我的想法更多的是如何工作的方式。除非在这里发布问题,否则很难在任何地方找到这些解决方案。你能建议任何书籍或课程,可以帮助我解决这些问题吗? –
我推荐的Scala书籍之一是Martin Odersky等编写的“Scala编程”。 Odersky是Scala的作者。 –