我有一个DataFrame
看起来像这样:
+--------------------+------------------+
| features| labels |
+--------------------+------------------+
|[-0.38475, 0.568...]| label1 |
|[0.645734, 0.699...]| label2 |
| ..... | ... |
+--------------------+------------------+
两列都是String类型(StringType()),我想将其放入spark ml
randomForest中。为此,我需要将要素列转换为包含浮点数的向量。有谁知道怎么做吗?
如果您使用的是 Spark 2.x ,我相信这就是您所需要的:
from pyspark.sql.functions import udf
from pyspark.mllib.linalg import Vectors
from pyspark.ml.linalg import VectorUDT
from pyspark.ml.feature import StringIndexer
df = spark.createDataFrame([("[-0.38475, 0.568]", "label1"), ("[0.645734, 0.699]", "label2")], ("features", "label"))
def parse(s):
try:
return Vectors.parse(s).asML()
except:
return None
parse_ = udf(parse, VectorUDT())
parsed = df.withColumn("features", parse_("features"))
indexer = StringIndexer(inputCol="label", outputCol="label_indexed")
indexer.fit(parsed).transform(parsed).show()
## +----------------+------+-------------+
## | features| label|label_indexed|
## +----------------+------+-------------+
## |[-0.38475,0.568]|label1| 0.0|
## |[0.645734,0.699]|label2| 1.0|
## +----------------+------+-------------+
使用 Spark 1.6 并没有太大不同:
from pyspark.sql.functions import udf
from pyspark.ml.feature import StringIndexer
from pyspark.mllib.linalg import Vectors, VectorUDT
df = sqlContext.createDataFrame([("[-0.38475, 0.568]", "label1"), ("[0.645734, 0.699]", "label2")], ("features", "label"))
parse_ = udf(Vectors.parse, VectorUDT())
parsed = df.withColumn("features", parse_("features"))
indexer = StringIndexer(inputCol="label", outputCol="label_indexed")
indexer.fit(parsed).transform(parsed).show()
## +----------------+------+-------------+
## | features| label|label_indexed|
## +----------------+------+-------------+
## |[-0.38475,0.568]|label1| 0.0|
## |[0.645734,0.699]|label2| 1.0|
## +----------------+------+-------------+
Vectors
具有parse
可以帮助您实现所要完成的功能的功能。
如何获取多个列表并将它们作为不同的列放在python数据框架中?我尝试了这个解决方案,但遇到了一些麻烦。 尝试1: 有三个列表,将它们压缩在一起,并使用 只生成一列 尝试2: 产生一行乘三列(如上所述)或者如果我转置它是三行和一列 如何通过3列(三个列表)数据帧获得100行(每个独立列表的长度)?
我试图将NameValuePairdata放到JSONObject中。NameValuePairdata的名称为String,值为JSONArray。现在,当我试图将这个NameValuePairdata放入JSONObject中时,JSONObject将JSONArray值转换为字符串。 请查看下面的代码以了解更多细节: 构造NameValuePair: 构造要发送到HttpPost的JSONO
我是java新手,我想知道如何读取。txt文件,然后将每一行都放入数组单元格中。.txt文件的格式必须如下所示: 我已经尝试创建一个以这种方式实现的ReadFile类:
问题内容: 我无法用自己的数据填充JavaFX TableView对象。我试图修改此处找到的代码以适合我的程序的需求。我添加了该教程中使用的表,它可以正确显示。我复制了该代码以创建第二个表,但是无法使我的数据显示在第二个表中。 我相信我已经正确修改了代码以接受来自SNMPInterface类的数据。我尝试用静态数据填充表,然后再使用从文件读取的数据填充表。尽管这两个过程都将创建具有适当标题的列,但
我有一个带有MongoDB的Nodejs应用程序。现在我想使用Elasticsearch将数据从mongo复制到Elasticsearch。我正在使用npm软件包“ElasticSearch”。例如,对于收藏“帖子”,我有这样的: 正如您所看到的,我的数据是非结构化的,并且Elasticsearch在我添加这些项时显示了错误。我想要一个把戏关闭弹性搜索限制,允许我添加这些数据。我不能改变我的数据它
问题内容: Hy 我是python的新手,我想使用此简单查询将一些数据从Oracle数据库导入python(pandas数据框) 我做了什么 但是我有这个错误 我做错了什么? 谢谢 问题答案: 您需要正确引用SQL查询。如果您查看问题(或IDE)中突出显示的语法,则会注意到单引号没有按预期工作。 将最外面的引号更改为双引号-如果要在一行上全部使用-或将三引号更改为多行: