在pyspark中,创建有或没有vectors.dense的Dataframe有什么区别?

pgccezyw  于 2021-05-26  发布在  Spark
关注(0)|答案(1)|浏览(386)

我正在创建两个Dataframe,training和test,它们在feature列中都有一个列表。我显示()两者,它们都返回相同的结构。所以我想知道有什么区别,为什么要和vectors.dense争论?

training = spark.createDataFrame(
    [
        (1.0, [0.0, 1.1, 0.1]),
        (0.0, [2.0, 1.0, -1.0]),
        (0.0, [2.0, 1.3, 1.0]),
        (1.0, [0.0, 1.2, -0.5]),
    ],
    ["label", "features"],
)

# Prepare test data

test = spark.createDataFrame(
    [
        (1.0, Vectors.dense([-1.0, 1.5, 1.3])),
        (0.0, Vectors.dense([3.0, 2.0, -0.1])),
        (1.0, Vectors.dense([0.0, 2.2, -1.5])),
    ],
    ["label", "features"],
)

training.show()
test.show()

退货:

+-----+----------------+
|label|        features|
+-----+----------------+
|  1.0| [0.0, 1.1, 0.1]|
|  0.0|[2.0, 1.0, -1.0]|
|  0.0| [2.0, 1.3, 1.0]|
|  1.0|[0.0, 1.2, -0.5]|
+-----+----------------+

+-----+--------------+
|label|      features|
+-----+--------------+
|  1.0|[-1.0,1.5,1.3]|
|  0.0|[3.0,2.0,-0.1]|
|  1.0|[0.0,2.2,-1.5]|
+-----+--------------+

谢谢你们

sycxhyv7

sycxhyv71#

我想我自己得到了答案,为了让ml模型工作,这个Dataframe需要一个np.array,而不是一个列表。我的解释是,它们相似,但结构不同。
欢迎评论。

相关问题