【发布时间】:2016-12-06 10:17:24
【问题描述】:
我有一个如下所示的 Spark 数据框:
+-----------+-------------------+
| ID | features |
+-----------+-------------------+
| 18156431|(5,[0,1,4],[1,1,1])|
| 20260831|(5,[0,4,5],[2,1,1])|
| 91859831|(5,[0,1],[1,3]) |
| 206186631|(5,[3,4,5],[1,5]) |
| 223134831|(5,[2,3,5],[1,1,1])|
+-----------+-------------------+
在这个数据框中,特征列是一个稀疏向量。在我的脚本中,我必须将此 DF 作为文件保存在磁盘上。执行此操作时,功能列将另存为文本列:示例"(5,[0,1,4],[1,1,1])"。
如您所料,在 Spark 中再次导入时,该列仍为字符串。如何将列转换回(稀疏)矢量格式?
【问题讨论】:
-
哪个版本的 Spark?你想得到哪个向量类(
ML/MLib)?您如何读取这些数据? -
Spark 版本 = 1.6.2。最好是 ML 向量(但您可以同时解释两者)。我使用以下代码读取数据:
DF = sqlContext.read.format('com.databricks.spark.csv').options(header='true', inferschema='true', delimiter=delimiter).load('file://'+path).drop('') -
1.6 中没有 ML Vector,所以它让事情变得简单 :)
-
它也可以是 MLLib 向量或任何其他类型的(稀疏)向量 :-)
标签: python pyspark apache-spark-sql apache-spark-mllib apache-spark-ml