使用 pyspark 将 Spark 数据框中的列转换为数组 [重复]

Posted

技术标签:

【中文标题】使用 pyspark 将 Spark 数据框中的列转换为数组 [重复]【英文标题】:Convert a column in Spark's dataframe into an array with pyspark [duplicate] 【发布时间】:2018-09-03 03:33:38 【问题描述】:

如何将 Spark 数据框中的列从字符串转换为数组?我需要这个,因为fpgroth 算法需要一个数组来创建模型。

df = spark.read.csv('kheiro/Stage/Model/itemsets.csv')
df.show()

数据:

列的类型:

这是错误:

【问题讨论】:

我的意思是数据帧的拆分内置函数。如果您需要更多帮助,请以文本格式而不是图像格式发布文本输入数据和您尝试过的代码 请不要将您的代码发布为屏幕截图。人们可能想要复制和粘贴它(搜索引擎也很难找到您的帖子) 【参考方案1】:

在 Pyspark for mllib 库中,您需要将所有特征转换为单个特征向量。你可以使用向量汇编器来做同样的事情:https://spark.apache.org/docs/latest/ml-features.html#vectorindexer

from pyspark.ml.feature import VectorAssembler
assembler = VectorAssembler(inputCols=inputColumnsList,outputCol='features')
assembler.transform(df)

inputColsList 包含的列表可以是您要转换的单列,也可以是要转换的多列

【讨论】:

那不是正确的答案。与许多其他 pyspark.ml Estimators 不同,pyspark.ml.fpm.FPGrowth 不接受 VectorUDT 输入。

以上是关于使用 pyspark 将 Spark 数据框中的列转换为数组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

PySpark:将 RDD 转换为数据框中的列

如何使用pyspark将具有多个可能值的Json数组列表转换为数据框中的列

在 PySpark 数据框中添加可为空的列

如何对 Pyspark spark.sql 数据框中的数据进行同质化

Pyspark:如何将现有非空列的元组列表作为数据框中的列值之一返回

org.apache.spark.sql.AnalysisException:给定pyspark中的输入列,无法解析'sub_tot`'