如何在数据框选择中添加中间列?

Posted

技术标签:

【中文标题】如何在数据框选择中添加中间列?【英文标题】:How to add intermediate columns in dataframe selections? 【发布时间】:2019-10-07 16:40:03 【问题描述】:

使用带有 spark-shell 的 Spark 2.2,并尝试 toDFtoDS

case class Person(name: String, age: Long)
val df = Seq( Person("Michael", 0), Person("Andy", 30), Person("Justin", 19) ).toDS()

这工作正常:

df.select("age", "name").show
df.select("age", "name").withColumn("foo",lit("-")).show

但使用this syntax 不起作用:

df.select( "age", lit("-").as("foo"), "name" ).show

如何使用列函数或列常量?

我需要更改列的顺序并添加一些中间列。

【问题讨论】:

您可以使用 withColumn 然后选择以获得正确的顺序 @firsni,是的,看起来很优雅的解决方案(!),您可以发布作为答案...或者我可以删除这个“for dummy”问题 【参考方案1】:

使用示例并假设 spark-shell 上下文,此查询解决了问题:

        df.withColumn("foo",lit("-")). select("name","foo","age") 

【讨论】:

我的 spark-shell 上的一些错误。 “错误:未找到:值名称”,必须使用 select("name") 而不是 select(name)"cannot resolve 'foo' given input columns",必须使用withColumn("foo",lit("-")) 而不是withColumn("age",lit("-").as("Foo")) 解决方案是df.withColumn("foo",lit("-")). select ("name","foo","age") 好的,因为我用的是手机。我不知道你想要的顺序。谢谢

以上是关于如何在数据框选择中添加中间列?的主要内容,如果未能解决你的问题,请参考以下文章

如何在引导数据表(具有固定列)中使用 select2?

如果用户写入超过 1 列,如何从 Shiny 的数据框中选择列?

如何在 pandas 的数据框中选择多个日期列,然后将它们全部格式化? (Python)

如何在带有熊猫的列数据框前面添加值[重复]

如何使用 selectInput 从 R 中的数据框中选择特定列?

excel中如何将两列数字并入一列,中间用逗号隔开?