【发布时间】:2019-01-09 23:55:08
【问题描述】:
当 DenseVector 转换为 StringType 时,输出中的额外值是什么?
以下内容应该是可重现的。
spark = pyspark.sql.SparkSession.builder.getOrCreate()
spark.version
# u'2.2.0.cloudera1'
from pyspark.ml.linalg import DenseVector
import pyspark.sql.functions as F
import pyspark.sql.types as T
testdf = spark.createDataFrame([\
(DenseVector([2, 3]),),\
(DenseVector([4, 5]),),\
(DenseVector([6, 7]),)],\
['DenseVectors'])
testdf \
.withColumn('DenseVector as String', F.col('DenseVectors')
.cast(T.StringType())) \
.show(truncate=False)
#+------------+----------------------------------------------------------+
#|DenseVectors|DenseVector as String |
#+------------+----------------------------------------------------------+
#|[2.0,3.0] |[6,1,0,0,2800000020,2,0,4000000000000000,4008000000000000]|
#|[4.0,5.0] |[6,1,0,0,2800000020,2,0,4010000000000000,4014000000000000]|
#|[6.0,7.0] |[6,1,0,0,2800000020,2,0,4018000000000000,401c000000000000]|
#+------------+----------------------------------------------------------+
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql