Scala中如何基于Spark从JSON生成指定对象的拼接值列表
解决方案
针对给定的Spark DataFrame,要生成指定列(如Orders)下所有值的拼接字符串列表,可通过以下方式实现:
核心思路
利用Spark内置函数将嵌套Struct类型的列转换为值数组,再通过字符串拼接函数将数组元素用逗号连接。
Scala 代码示例
import org.apache.spark.sql.functions.{col, concat_ws, map_values} // 定义目标列变量 val targetCol = "Orders" // 提取目标列所有值并拼接 val resultDF = df.select(concat_ws(",", map_values(col(targetCol))).alias("order_values")) // 查看结果 resultDF.show(false)
Python 代码示例
from pyspark.sql import functions as F // 定义目标列变量 target_col = "Orders" // 提取目标列所有值并拼接 result_df = df.select(F.concat_ws(",", F.map_values(F.col(target_col))).alias("order_values")) // 查看结果 result_df.show(truncate=False)
结果说明
执行上述代码后,会得到包含拼接结果的DataFrame,其中order_values列的内容为:order_id,customers.customerId。
内容的提问来源于stack exchange,提问作者Shankar Panda
相关产品推荐
相关产品推荐

