如何在 Python 中将 SQLContext 数据框转换为向量的 RDD?

数据挖掘 统计数据 阿帕奇火花
2022-03-13 13:10:14

我有一个从 pandas 数据框派生的 SQLContext 数据框,该数据框由几个数字列组成。我想使用pyspark.mllib.stats包执行多元统计分析。统计函数需要一个向量的 RDD。我无法将此数据帧转换为向量的 RDD。有没有办法转换数据框?

代码:

 rdd = sqlCtx.createDataFrame(df_new)
 summary = Statistics.colStats(rdd)

我从 df_new

 df_new = df.applymap(lambda s: dic.get(s) if s in dic else s) #df is a pandas dataframe

我在摘要行收到 PY4JJava 错误。问题在于 rdd 的格式。

1个回答

Dataframe Python API 通过调用以下命令公开 Dataframe 的 RDD:

df.rdd # you can save it, perform transformations of course, etc. 

df.rdd 将内容作为 Row 的 pyspark.RDD 返回。

然后,您可以在 Row 的 RDD 上进行映射,将每一行转换为一个numpy向量。我无法更具体地了解转换,因为我不知道您的向量在给出的信息中代表什么。

注1:df是定义我们数据框的变量。

注 2:此功能从 Spark 1.3 开始可用