【问题标题】:How to explode array column given a formula?如何在给定公式的情况下分解数组列?
【发布时间】:2021-03-09 23:27:05
【问题描述】:

我在 spark scala 中尝试了一个非常基本的东西,但无法弄清楚。

我有这样的数据:

col1 col2
John 1
Jack 2

而且,我想实现这个:

col1 col2
John 1
John 0
John 2
Jack 2
Jack 1
Jack 3

也就是说,对于每一行,我想再创建两行,一个是val(col2)-1val(col2)+1

我尝试使用explode,但不知道如何正确使用。

val exploded_df = df.withColumn("col2", explode($"col2" -1, $"col2", $"col2" +1 ))

然后,得到:

方法的参数太多explode: (e: org.apache.spark.sql.Column)org.apache.spark.sql.Column

【问题讨论】:

    标签: scala apache-spark apache-spark-sql


    【解决方案1】:

    你需要指定一个数组列来爆炸:

    val exploded_df = df.withColumn("col2", explode(array($"col2" -1, $"col2", $"col2" +1 )))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-28
      相关资源
      最近更新 更多