我们知道sparkDataframe的顺序在保存到存储器时丢失例如,假设我们有一个有3列的sparkDataframe
+--------+-----+---+
|feature |label| id|
+--------+-----+---+
| ... | ... |...|
+--------+-----+---+
我们可以使用以下方法将Dataframe保存为libsvm:
df.select("label", "feature").write.mode("overwrite").format("libsvm").save(some_path)
但是,在转换到libsvm之后,我们失去了 id
列。
问题:我们怎样才能找到 id
对于libsvm中的数据?
1条答案
按热度按时间f45qwnt81#
你输了
id
列,因为您选择了列的子集。如果要插入整个Dataframe,请使用:
如果您只需要这3列,请使用:
https://spark.apache.org/docs/latest/api/scala/org/apache/spark/sql/dataset.html#select(cols:org.apache.spark.sql.column*):org.apache.spark.sql.dataframe