2017-05-04 2 views
0

데이터 프레임을 CSV 형식으로 내 보냈습니다. 일부 열 데이터 유형이 vector에서 string으로 변경되었습니다.spark dataframe의 열 값의 시작과 끝에서 따옴표를 제거하는 방법은 무엇입니까?

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") 
) 
- 변경 열 값 [0.3505623887760.203056015074, -0.313145598397] '[0.3505623887760.203056015074는 -0.313145598397]

가 I i가 사용되는 벡터로 변환하려고

열의 데이터 유형이 문자열에서 벡터로 변경되었지만 vectorassembler를 적용했을 때 오류가 발생했습니다 ValueError : 문자열을 float로 변환 할 수 없습니다 : [0.389866781754-0.180391363533-0.212950805169]. 그 해결책을 찾다가이 오류에 대한 해결책을 얻었지만 나에게 도움이되지 못했습니다.

답변

0

이 (오른쪽, 결과는 종류의 신뢰?) 일반적으로 좋은 방법, 그럼에도 불구하고 단지 결과를 평가 후면 시도하지

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

것은 당신이 아마이 lib 디렉토리를 사용하고 있는지,하지만주의 잘못된 방법.

+0

감사! 나는 판다 데이터 프레임의 열에 그것을 적용하고 그것은 잘 작동하지만 당신은 스파크 데이터 프레임의 열에 그것을 적용하는 방법을 알고있다. –

+0

예를 들어 주시겠습니까? 감사. –

+0

죄송합니다. 잘못된 스레드였습니다.) 잘 몰라, 미안 해요. –

관련 문제