gpt4 book ai didi

scala - 在 Spark-Scala 中将 Dataset[Row] 转换为 RDD[Array[String]] 的最佳方法?

转载 作者:行者123 更新时间:2023-12-04 00:52:20 35 4
gpt4 key购买 nike

我正在通过读取 csv 文件创建一个 spark 数据集。此外,我需要将此 Dataset[Row] 转换为 RDD[Array[String]] 以将其传递给 FpGrowth(Spark MLLIB)。

val df: DataFrame = spark.read.format("csv").option("header", "true").load("/path/to/csv")
val ds: Dataset[Row] = df.groupBy("user").agg(collect_set("values"))

现在,我需要选择列“values”并将生成的数据集转换为 RDD[Array[String]]

val rddS: RDD[String] = ds.select(concat_ws(",", col("values")).as("items")).distinct().rdd.map(_.mkString(","))
val rddArray: RDD[Array[String]] = rddS.map(s => s.trim.split(','))

我尝试了这种方法,但不确定它是否是最好的方法。请建议我实现此目标的最佳方法。

最佳答案

一行:

val rddArray: RDD[Array[String]] = ds.select("values").as[Array[String]].rdd

顺便说一下,我建议使用基于数据帧的 Spark ML 而不是基于 RDD 的 Spark MLLib,后者现已弃用。您可以使用 org.apache.spark.ml.fpm.FPGrowth

关于scala - 在 Spark-Scala 中将 Dataset[Row] 转换为 RDD[Array[String]] 的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65625846/

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