데이터 프레임이 df
이고 VectorUDT
열이 features
인 항목이 있습니다. 첫 번째 요소에서 어떻게 열의 요소를 가져 옵니까?Spark DataFrame에서 VectorUDT 열의 요소에 액세스하는 방법은 무엇입니까?
나는 다음과 같은
from pyspark.sql.functions import udf
first_elem_udf = udf(lambda row: row.values[0])
df.select(first_elem_udf(df.features)).show()
일을 시도했지만 나는 net.razorvine.pickle.PickleException: expected zero arguments for construction of ClassDict(for numpy.dtype)
오류가 발생합니다. 대신 first_elem_udf = first_elem_udf(lambda row: row.toArray()[0])
을 입력하면 같은 오류가 발생합니다.
나는 또한 explode()
을 시도했지만 배열이나 맵 유형이 필요하기 때문에 오류가 발생합니다.
이것은 일반적인 작업이어야한다고 생각합니다. float
에
이것은 나를 위해 작동하지 않습니다. – user2205916
@ user2205916 여기에 재현 가능한 예제가 있습니다. __ 어떤 일을하지 않았는지 설명해주십시오. :) – zero323
'lit (1)'을'lit (0)'로 바꿀 때까지 이것은 나에게 도움이되지 않았습니다. 당신의 재현 가능한 예제에서 추측 할 수 있습니다. 감사합니다! –