mle*_*dan 4 scala dataframe apache-spark apache-spark-sql
我有一个数据框如下:
+-----+--------------------+
|LABEL| TERM|
+-----+--------------------+
| 4| inhibitori_effect|
| 4| novel_therapeut|
| 4| antiinflammator...|
| 4| promis_approach|
| 4| cell_function|
| 4| cell_line|
| 4| cancer_cell|
Run Code Online (Sandbox Code Playgroud)
我想通过将所有术语作为序列来创建一个新的数据框,以便可以将它们与Word2vec一起使用。那是:
+-----+--------------------+
|LABEL| TERM|
+-----+--------------------+
| 4| inhibitori_effect, novel_therapeut,..., cell_line |
Run Code Online (Sandbox Code Playgroud)
因此,我想应用此处给出的示例代码: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"))
Run Code Online (Sandbox Code Playgroud)
您可以使用collect_list或collect_set功能:
import org.apache.spark.sql.functions.{collect_list, collect_set}
df.groupBy($"label").agg(collect_list($"term").alias("term"))
Run Code Online (Sandbox Code Playgroud)
在Spark <2.0中,它需要HiveContext;在Spark 2.0+中,您必须在中启用配置单元支持SessionBuilder。请参阅在Spark SQL中使用collect_list和collect_set
| 归档时间: |
|
| 查看次数: |
5304 次 |
| 最近记录: |