2017-05-04 55 views
0

我將數據框導出爲csv格式。它的一些列數據類型從矢量更改爲字符串。從改變的列值[0.350562388776,0.203056015074,-0.313145598397]'[0.350562388776,0.203056015074,-0.313145598397]'如何擺脫火花數據幀列值開始和結束處的引號?

我試圖將其轉換爲我用於其中的載體 -

from pyspark.ml.linalg import Vectors, VectorUDT 
from pyspark.sql.functions import udf 
list_to_vector_udf = udf(lambda l: Vectors.dense(l), VectorUDT()) 
vectors = df.select(
list_to_vector_udf(df["result1"]).alias("res1"), 
list_to_vector_udf(df["result2"]).alias("res2") 
) 

該列的數據類型已從字符串更改爲向量,但在應用vectorassembler時發生錯誤ValueError:無法將字符串轉換爲浮點數:[0.389866781754-0.180391363533-0.212950805169]。 我搜索了它的解決方案,得到了這個錯誤的解決方案,但沒有爲我工作。

回答

0

這通常不是一個好辦法,但嘗試只是EVAL結果(結果是一種值得信賴的,對吧?)

>>> a = eval('[1,2,3']) 
>>> print(a) 
[1,2,3] 

要知道,雖然,你可能正在使用此LIB在錯誤的方法。

+0

謝謝!我將它應用於熊貓數據框的一列,並且工作正常,但您是否有任何想法知道如何將其應用於一列火花數據框。 –

+0

你能舉個例子嗎?謝謝。 –

+0

對不起,這是錯誤的線程)不知道,對不起) –