gpt4 book ai didi

java - 如何将字符串添加到spark数据集中的字符串数组列

转载 作者:行者123 更新时间:2023-11-30 01:49:42 25 4
gpt4 key购买 nike

我有一个“数据集(行)”,如下所示

+-----+--------------+
|val | history |
+-----+--------------+
|500 |[a=456, a=500]|
|800 |[a=456, a=500]|
|784 |[a=456, a=500]|
+-----+--------------+

这里 val 是“字符串”,history 是“字符串数组”。我正在尝试将 val 列中的内容添加到历史列中,以便我的数据集看起来像:

+-----+---------------------+
|val | history |
+-----+---------------------+
|500 |[a=456, b=500, c=500]|
|800 |[a=456, b=500, c=800]|
|784 |[a=456, b=500, c=784]|
+-----+---------------------+

这里讨论了类似的问题 https://stackoverflow.com/a/49685271/2316771 ,但我不了解 scala,无法创建类似的 java 解决方案。

请帮我用java实现这个

最佳答案

在 Spark 2.4(不是之前的版本)中,您可以使用 concat 函数来连接两个数组。对于您的情况,您可以执行以下操作:

df.withColumn("val2", concat(lit("c="), col("val")))
.select(concat(col("history"), array(col("val2")));

注意:我第一次使用 concat 是为了连接字符串,第二次是为了连接数组。 array(col("val2")) 创建一个包含一个元素的数组。

关于java - 如何将字符串添加到spark数据集中的字符串数组列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56486153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com