【问题标题】:How to add a list or array of strings as a column to a Spark Dataframe如何将字符串列表或数组作为列添加到 Spark Dataframe
【发布时间】:2021-06-09 09:09:37
【问题描述】:

所以,我有n 可以保存在数组或列表中的字符串数,如下所示:

val checks = Array("check1", "check2", "check3", "check4", "check5")
val checks: List[String] = List("check1", "check2", "check3", "check4", "check5")

现在,我有一个 spark 数据框 df,我想添加一个包含此列表/数组中存在的值的列。 (保证我的列表/数组中的项目数将完全等于数据框中的行数,即n

我试着做: df.withColumn("Value", checks) 但这没有用。实现这一目标的最佳方法是什么?

【问题讨论】:

标签: scala dataframe apache-spark


【解决方案1】:

您需要将其添加为数组列,如下所示:

val df2 = df.withColumn("Value", array(checks.map(lit):_*))

如果你想要每一行都有一个值,你可以得到数组元素:

val df2 = df.withColumn("Value", array(checks.map(lit):_*))
            .withColumn("rn", row_number().over(Window.orderBy(lit(1))) - 1)
            .withColumn("Value", expr("Value[rn]"))
            .drop("rn")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-27
    • 2020-09-03
    • 2017-01-07
    • 2021-06-11
    • 2018-12-13
    • 2018-12-23
    相关资源
    最近更新 更多