kod*_*911 2 scala apache-spark apache-spark-sql
假设我有具有以下架构的数据框:
| -- comment: struct
| |-- _1: string
| |-- _2: string
| |-- _3: string
Run Code Online (Sandbox Code Playgroud)
当我使用时,df.select("comment.*")我正在获取包含 _1、_2、_3 列的数据框。是否有可能使用alias方法更改别名?理想情况下它会是什么样子df.select($"comment.*".alias("a", "b", "c"))?
甚至df.select($"comment".alias("a"))会产生错误:
org.apache.spark.sql.AnalysisException: Invalid usage of '*' in expression 'alias';
Run Code Online (Sandbox Code Playgroud)
您始终可以为 生成一系列列select:
val from = (1 to 3).map(i => col(s"comment._$i"))
val to = Seq("a", "b", "c")
df.select(from.zip(to).map { case (x, y) => x.alias(y) }: _*)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4566 次 |
| 最近记录: |