[英]Convert schema of a Spark DataFrame to another DataFrame
我在 PySpark 上有一個 Spark DataFrame,我想將其架構存儲到另一個 Spark DataFrame 中。
例如:我有一個樣本 DataFrame df
看起來像 -
+---+-------------------+
| id| v|
+---+-------------------+
| 0| 0.4707538108432022|
| 0|0.39170676690905415|
| 0| 0.8249512619546295|
| 0| 0.3366111661094958|
| 0| 0.8974360488327017|
+---+-------------------+
我可以通過以下方式查看df
的架構 -
df.printSchema()
root
|-- id: integer (nullable = true)
|-- v: double (nullable = false)
我需要的是一個 DataFrame ,它在col_name
和dtype
兩列中顯示有關df
的上述信息。
預期 Output:
+---------+-------------------+
| col_name| dtype|
+---------+-------------------+
| id| integer|
| v| double|
+---------+-------------------+
我如何實現這一目標? 我找不到有關此的任何信息。 謝謝。
最簡單的方法是從df.dtypes
:
spark.createDataFrame(df.dtypes, ["col_name", "dtype"]).show()
#+--------+------+
#|col_name| dtype|
#+--------+------+
#| id| int|
#| v|double|
#+--------+------+
但是,如果您希望dtype
列如printSchema
中所示,您可以通過df.schema
來實現
spark.createDataFrame(
[(d['name'], d['type']) for d in df.schema.jsonValue()['fields']],
["col_name", "dtype"]
).show()
#+--------+-------+
#|col_name| dtype|
#+--------+-------+
#| id|integer|
#| v| double|
#+--------+-------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.