Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何将数据帧列转换为序列_Scala_Apache Spark_Dataframe_Apache Spark Sql - Fatal编程技术网

Scala 如何将数据帧列转换为序列

Scala 如何将数据帧列转换为序列,scala,apache-spark,dataframe,apache-spark-sql,Scala,Apache Spark,Dataframe,Apache Spark Sql,我有一个数据帧,如下所示: +-----+--------------------+ |LABEL| TERM| +-----+--------------------+ | 4| inhibitori_effect| | 4| novel_therapeut| | 4| antiinflammator...| | 4| promis_approach| | 4| cell_function| | 4|

我有一个数据帧,如下所示:

+-----+--------------------+
|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 |
因此,我希望应用以下示例代码:

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

提前谢谢

编辑:


您可以使用
collect\u list
collect\u 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
中启用配置单元支持。请参见

我正在使用Spark 1.4.1-hadoop2.6.0.jar。我已经试过了,从上面的编辑文章可以看出。仍然无法使用这些功能。我遗漏了什么?据我记忆所及,这些在1.4中是不可用的(不过你真的应该更新。从那时起,性能和功能有了巨大的提升,更不用说即将到来的2.0引入了一些突破性的更改)。在1.4中,您应该能够使用原始SQL查询,例如。但是,这次我得到了以下错误:javax.jdo.JDOFatalUserException:Class org.datanucleus.api.jdo.JDOPersistenceManagerFactory未找到是的,它终于工作了。没有将所有必需的jar文件放在spark/lib文件夹中是我的错。使用时我所有的问题都解决了。谢谢@zero323!
import org.apache.spark.sql.functions.{collect_list, collect_set}

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