gpt4 book ai didi

scala - 如何将数据框列转换为序列

转载 作者:行者123 更新时间:2023-12-05 00:55:57 25 4
gpt4 key购买 nike

我有一个如下的数据框:

+-----+--------------------+
|LABEL| TERM|
+-----+--------------------+
| 4| inhibitori_effect|
| 4| novel_therapeut|
| 4| antiinflammator...|
| 4| promis_approach|
| 4| cell_function|
| 4| cell_line|
| 4| cancer_cell|

我想通过将所有术语作为序列来创建一个新的数据框,以便我可以将它们与 Word2vec 一起使用。那是:
+-----+--------------------+
|LABEL| TERM|
+-----+--------------------+
| 4| inhibitori_effect, novel_therapeut,..., cell_line |

因此,我想应用此处给出的示例代码: https://spark.apache.org/docs/latest/ml-features.html#word2vec

到目前为止,我已经尝试将 df 转换为 RDD 并映射它。然后我无法将其重新转换为 df。

提前致谢。

编辑:
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.sql.hive.HiveContext
import org.apache.spark.sql.SQLContext

val sc = new SparkContext(conf)
val sqlContext: SQLContext = new HiveContext(sc)

val df = sqlContext.load("jdbc",Map(
"url" -> "jdbc:oracle:thin:...",
"dbtable" -> "table"))

df.show(20)

df.groupBy($"label").agg(collect_list($"term").alias("term"))

最佳答案

您可以使用 collect_listcollect_set职能:

import org.apache.spark.sql.functions.{collect_list, collect_set}

df.groupBy($"label").agg(collect_list($"term").alias("term"))

在 Spark < 2.0 中,它需要 HiveContext在 Spark 2.0+ 中,您必须在 SessionBuilder 中启用 hive 支持.见 Use collect_list and collect_set in Spark SQL

关于scala - 如何将数据框列转换为序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37189802/

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